新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 數(shù)據(jù)傳送指令之: 程序狀態(tài)寄存器指令

        數(shù)據(jù)傳送指令之: 程序狀態(tài)寄存器指令

        作者: 時(shí)間:2013-09-13 來(lái)源:網(wǎng)絡(luò) 收藏

        本文引用地址:http://www.104case.com/article/257077.htm

        5.6

        指令集提供了兩條指令,可直接控制程序狀態(tài)寄存器(PSR,Program State Register)。指令用于把CPSR或SPSR的值傳送到一個(gè)寄存器;MSR與之相反,把一個(gè)寄存器的內(nèi)容傳送到CPSR或SPSR。這兩條指令結(jié)合,可用于對(duì)CPSR和SPSR進(jìn)行讀/寫(xiě)操作。

        交換指令如表5.5所示。

        表5.5

        指 令

        作 用

        操 作

        把程序狀態(tài)寄存器的值送到一個(gè)通用寄存器

        Rd=SPR

        MSR

        把通用寄存器的值送到程序狀態(tài)寄存器或把一個(gè)立即數(shù)送到程序狀態(tài)字

        PSR[field]=Rm或PSR[field]=immediate

        在指令語(yǔ)法中可看到一個(gè)稱(chēng)為fields的項(xiàng),它可以是控制(C)、擴(kuò)展(X)、狀態(tài)(S)及標(biāo)志(F)的組合。

        注意

        程序不能通過(guò)直接修改CPSR中的T位控制直接將程序狀態(tài)切換到Thumb狀態(tài),必須通過(guò)BX等指令完成程序狀態(tài)的切換。

        5.6.1

        (1)指令編碼格式

        MRS指令用于將程序狀態(tài)寄存器的內(nèi)容傳送到通用寄存器中。

        指令的編碼格式如圖5.22所示。

        圖5.22 MRS指令編碼格式

        當(dāng)數(shù)據(jù)被移到通用寄存器以后,就可以對(duì)數(shù)據(jù)進(jìn)行處理。

        (2)指令的語(yǔ)法格式

        MRS{cond>} Rd>,CPSR

        MRS{cond>} Rd>,SPSR

        ① cond>

        為指令編碼中的條件域。它指示LDM(1)指令在什么條件下執(zhí)行。當(dāng)cond>忽略時(shí),指令為無(wú)條件執(zhí)行(cond=AL(Alway))。

        ② Rd>

        目標(biāo)寄存器。當(dāng)r15被用作目標(biāo)寄存器時(shí),指令執(zhí)行結(jié)果不可預(yù)知。

        (3)指令操作的偽代碼

        指令操作偽代碼如下面程序段所示。

        If ConditionPassed{cond} then

        If R==1 then

        Rd=SPSR

        ELSE

        Rd=CPSR

        注意

        ① 當(dāng)操作碼opcode[11∶0]≠0x000時(shí),指令的執(zhí)行結(jié)果不可預(yù)知。

        ② 當(dāng)操作碼opcode[19∶16]≠0b1111時(shí),指令的執(zhí)行結(jié)果不可預(yù)知。

        ③ 當(dāng)在用戶模式下對(duì)SPSR進(jìn)行操作時(shí),指令的執(zhí)行結(jié)果不可預(yù)知。

        5.6.2 MSR

        (1)指令編碼格式

        MSR指令用于將通用寄存器中的內(nèi)容或立即數(shù)傳送到程序狀態(tài)寄存器中。因此指令的編碼格式也有兩種格式。

        指令的源操作數(shù)為通用寄存器時(shí)編碼格式如圖5.23所示。

        圖5.23 源操作數(shù)為通用寄存器的MSR指令編碼

        指令的源操作數(shù)為立即數(shù)時(shí)編碼格式如圖5.24所示。

        圖5.24 源操作數(shù)為立即數(shù)的MSR指令編碼


        上一頁(yè) 1 2 下一頁(yè)

        評(píng)論


        相關(guān)推薦

        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 毕节市| 镇江市| 新兴县| 织金县| 威信县| 长宁区| 湖北省| 米泉市| 永嘉县| 延津县| 龙川县| 绥阳县| 沧源| 中超| 溧水县| 明水县| 呼和浩特市| 文登市| 应城市| 天等县| 石屏县| 邵阳市| 汤原县| 交城县| 玉树县| 光山县| 长葛市| 闻喜县| 凤冈县| 抚松县| 镇康县| 木兰县| 北流市| 阿鲁科尔沁旗| 大埔区| 沧州市| 灌阳县| 襄汾县| 呼玛县| 武宁县| 九江县|