3.8 程序状态寄存器 简介 每个异常模式还带有一个程序状态保存寄存器 (SPSR),它用于保存在异常事件发生之前的CPSR。CPSR和SPSR通过特殊指令进行访问。详细信息请参阅第4章 。 注意:如果通过程序修改CPSR寄存器中的模式位进入异常模式,那么硬件将不会把CPSR保存至SPSR中。 3.8 程序状态寄存器 条件代码标志 大多数“数值处理指令”可以选择是否影响条件代码标志位。通常如果指令带S后缀,则该指令的执行会影响条件代码标志;但有一些指令的执行总是会影响条件代码标志。 N、 Z、 C和V位都是条件代码标志。算术操作、逻辑操作、MSR或者LDM指令可以对这些位进行设置。所有ARM指令都可按条件来执行,而Thumb指令中只有分支指令可按条件执行。 3.8 程序状态寄存器 条件代码标志 各标志位的含义如下: N 运算结果的最高位反映在该标志位。对于有符号二进制补码,结果为负数时N=1,结果为正数或零时N=0; Z 指令结果为0时Z=1(通常表示比较结果“相等”),否则Z=0; 3.8 程序状态寄存器 条件代码标志 各标志位的含义如下: C 当进行加法运算(包括CMN指令),并且最高位产生进位时C=1,否则C=0。当进行减法运算(包括CMP 指令),并且最高位产生借位时C=0,否则C=1。对于结合移位操作的
原创力文档

文档评论(0)