程序状态寄存器:
程序状态寄存器 分为 CPSR 和 SPSR;
- CPSR 简介:
CPSR = Current Program Status Register ,当前程序状态寄存器; - SPSR 简介:
SPSR = Saved Program Status Registers ,备份程序状态寄存器
程序状态寄存器的32位格式:
条件代码标志位的含义: ★★★
标记 | 含义 |
---|---|
N(Negative) | 指令结果为负值时,置1 |
Z(Zero) | 指令结果为零值时,置1 |
C(Carry) | 对于加法有进位时,置1 对于减法有借位时,置1 |
V(Overflow) | 指令结果不能用32位的二进制补码存储,即发生了溢出时,置1 |
程序状态寄存器的32位划分缩写:
划分原理: 8位一组;
位 | 解释 | 写法 |
---|---|---|
Bit[31,24] | 条件标志位区域,用f表示 | cpsr_f |
Bit[23,16] | 状态位区域,用s表示 | cpsr_s |
Bit[15,8] | 扩展位区域,用x表示 | cpsr_x |
Bit[7,0] | 控制位区域,用c表示 | cpsr_c |
其中常见的是 cpsr_c
, 它表示cpsr寄存器的低8位。
示例:
;//将寄存器r0的值复制给cpsr的低8位
msr cpsr_cxsf,r0