<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

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

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

本文引用地址:http://dyxdggzs.com/article/257077.htm

5.6

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

交換指令如表5.5所示。

表5.5

指 令

作 用

操 作

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

Rd=SPR

MSR

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

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

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

注意

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

5.6.1

(1)指令編碼格式

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

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

圖5.22 MRS指令編碼格式

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

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

MRS{cond>} Rd>,CPSR

MRS{cond>} Rd>,SPSR

① cond>

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

② Rd>

目標寄存器。當r15被用作目標寄存器時(shí),指令執行結果不可預知。

(3)指令操作的偽代碼

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

If ConditionPassed{cond} then

If R==1 then

Rd=SPSR

ELSE

Rd=CPSR

注意

① 當操作碼opcode[11∶0]≠0x000時(shí),指令的執行結果不可預知。

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

③ 當在用戶(hù)模式下對SPSR進(jìn)行操作時(shí),指令的執行結果不可預知。

5.6.2 MSR

(1)指令編碼格式

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

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

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

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

圖5.24 源操作數為立即數的MSR指令編碼


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

評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>