程序状态寄存器:

程序状态寄存器 分为 CPSR 和 SPSR;

  • CPSR 简介:
    CPSR = Current Program Status Register ,当前程序状态寄存器;
  • SPSR 简介:
    SPSR = Saved Program Status Registers ,备份程序状态寄存器

程序状态寄存器的32位格式:

CPSR、SPSR - 图1

条件代码标志位的含义: ★★★

标记 含义
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