ARM寄存器


- ARM共有37个寄存器,都是32位长度
- 37个寄存器中30个为“通用”型,1个固定用作PC,一个固定用作CPSR,5个固定用作5中种异常模式下的SPSR
CPSR程序状态寄存器

-
N、Z、C、V,最高4位称为条件码标志。ARM的大多数指令可以条件执行的,即通过检测这些条件码标志来决定程序指令如何执行。各个条件码的含义如下:
- N:在结果是有符号的二进制补码情况下,如果结果为负数,则N=1;如果结果为非负数,则N=0。
- Z:如果结果为0,则Z=1;如果结果为非零,则Z=0。
- C:其设置分一下几种情况:
对于加法指令(包含比较指令CMN),如果产生进位,则C=1;否则C=0。
对于减法指令(包括比较指令CMP),如果产生借位,则C=0;否则C=1。
对于有移位操作的非法指令,C为移位操作中最后移出位的值。
对于其他指令,C通常不变。
-
V:对于加减法指令,在操作数和结果是有符号的整数时,如果发生溢出,则V=1;如果无溢出发生,则V=0;对于其他指令,V通常不发生变化。
-
Q 位
- 仅ARM 5TE/J 架构支持
- 指示饱和状态
-
J 位
- 仅arm 5TE/J架构支持
-
中断禁止位:
- I = 1: 禁止 IRQ
- F = 1: 禁止 FIQ
-
T Bit
-仅 ARM xT架构支持 -
Model位
- 处理器模式位
-
CPSR 中各个Bit位表明了CPU的某些状态信息,这些信息非常重要,和后面
网友评论