新闻中心

EEPW首页>嵌入式系统>设计应用> ARM中关于CPSR_cxsf

ARM中关于CPSR_cxsf

作者: 时间:2016-11-11 来源:网络 收藏
msr cpsr_cxsf,r1;这里的cxsf表示从低到高分别占用的4个8bit的数据域

指令中有时还有出现cpsr_cf, cpsr_all, cpsr_c等,这里:

本文引用地址://m.amcfsurvey.com/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

00000User26 模式

00001FIQ26 模式

00010IRQ26 模式

00011SVC26 模式

10000User 模式

10001FIQ 模式

10010IRQ 模式

10011SVC 模式

10111ABT 模式

11011UND 模式

深入分析:

对于MSR(寄存器到状态寄存器)的指令,

MSR CPSR,r0

MSR CPSR_all,r0

MSR CPSR_flg,r0

都是已经过时的表示方法。

对于MRS(状态寄存器到寄存器)的指令,

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的。所以能够在机器执行的时候,

给予不同的执行结果。为了代码向后兼容性,建议使用f,c,x,s尾缀



关键词:ARMCPSR_cxs

评论


技术专区

关闭