新聞中心

ARM中關(guān)于CPSR_cxsf

作者: 時(shí)間:2016-11-11 來(lái)源:網(wǎng)絡(luò) 收藏
msr cpsr_cxsf,r1;這里的cxsf表示從低到高分別占用的4個(gè)8bit的數(shù)據(jù)域

指令中有時(shí)還有出現(xiàn)cpsr_cf, cpsr_all, cpsr_c等,這里:

本文引用地址:http://butianyuan.cn/article/201611/316969.htm

c 指CPSR中的control field ( PSR[7:0])

f 指flag field (PSR[31:24])

x 指extend field (PSR[15:8])

s 指status field ( PSR[23:16])

其中cpsr的位表示為:

31 30 29 28---76-43210

NZCVIFM4M3M2M1M0

000 00User26 模式

000 01FIQ26 模式

000 10IRQ26 模式

000 11SVC26 模式

10000User 模式

10001FIQ 模式

10010IRQ 模式

10011SVC 模式

10111ABT 模式

1101 1UND 模式

深入分析:

對(duì)于MSR(寄存器到狀態(tài)寄存器)的指令,

MSR CPSR,r0

MSR CPSR_all,r0

MSR CPSR_flg,r0

都是已經(jīng)過(guò)時(shí)的表示方法。

對(duì)于MRS(狀態(tài)寄存器到寄存器)的指令,

MRS R0,CPSR等同于MRS R0, CPSR_cxsf

MRS R0,CPSR_all 會(huì)有waring

MRS R0,CPSR_flg會(huì)有錯(cuò)誤

在ADS中使用c,f,x,s表示cpsr的各個(gè)部分是推薦的。從指令來(lái)說(shuō):

MSR CPSR_f,r0機(jī)器碼為0xe128f000

MSR CPSR_c,r0機(jī)器碼為0xe121f000

MSR CPSR_x,r0機(jī)器碼為0xe122f000

MSR CPSR_s,r0機(jī)器碼為0xe124f000

可見(jiàn)機(jī)器碼中用bit[29:16]4bit表示是f,c,x,s的。所以能夠在機(jī)器執(zhí)行的時(shí)候,

給予不同的執(zhí)行結(jié)果。為了代碼向后兼容性,建議使用f,c,x,s尾綴



關(guān)鍵詞: ARMCPSR_cxs

評(píng)論


技術(shù)專區(qū)

關(guān)閉