新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > ARM中關于CPSR_cxsf

ARM中關于CPSR_cxsf

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

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

本文引用地址:http://m.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 模式

深入分析:

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

MSR CPSR,r0

MSR CPSR_all,r0

MSR CPSR_flg,r0

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

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

MRS R0,CPSR等同于MRS R0, CPSR_cxsf

MRS R0,CPSR_all 會有waring

MRS R0,CPSR_flg會有錯誤

在ADS中使用c,f,x,s表示cpsr的各個部分是推薦的。從指令來說:

MSR CPSR_f,r0機器碼為0xe128f000

MSR CPSR_c,r0機器碼為0xe121f000

MSR CPSR_x,r0機器碼為0xe122f000

MSR CPSR_s,r0機器碼為0xe124f000

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

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



關鍵詞: ARMCPSR_cxs

評論


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

關閉