理清ARM处理器CPSR标志位和条件符关系

2013-09-05 16:15 来源:电子信息网 作者:和静

本文目的是要理清ARM处理器的CPSR状态标志和ARM指令的条件符之间的关系。

一、CPSR寄存器

ARM V4的CPSR寄存器(和保存它的SPSR寄存器)中的位分配如下图1所示。

1

图1 程序状态寄存器格式

状态标志位含义:(其它位的含义和本文主题无关,此处不多介绍)

N

N=1 表示运算的结果为负数;N=0 表示运算的结果为正数或零;

Z

Z=1 表示运算的结果为零;Z=0表示运算的结果为非零;

C

可以有4种方法设置C的值:

─ 加法运算(包括比较指令CMN):当运算结果产生了进位时(无符号数溢出),C=1,否则C=0。

─ 减法运算(包括比较指令CMP):当运算时产生了借位,C=0,否则C=1。

─ 对于包含移位操作的非加/减运算指令,C为移出值的最后一位。

─ 对于其他的非加/减运算指令,C的值通常不改变。

V

可以有2种方法设置V的值:

─ 对于加/减法运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,V=1表示符号位溢出。

─ 对于其他的非加/减运算指令,V的值通常不改变

二、条件符及对应的标志位

1 2 3 4 > 
ARM处理器 CPSR标志位 条件符

相关阅读

暂无数据

一周热门