ARM处理器共有37个寄存器,其中31个通用寄存器,6个状态寄存器。分类如下:
通用寄存器中,R13,R14,R15很重要,具有特殊的作用。
R13:通常用于充当堆栈指针(SP);
R14:充当链接寄存器(LR),用于记录返回地址,主要有两种模式:
①保存调用子函数后的返回地址
②保存执行完异常处理后的返回地址
R15:程序计数器,也即PC指针,用于存放下一条指令所在单元的地址。
状态寄存器分为CPSR和SPSR,其中SPSR用于产生异常时保存CPSR的状态,使CPSR能够在异常处理完成后回复原来的状态。状态寄存器CPSR和SPSR格式相同,都是32位寄存器,具体格式如下:
N:两数进行减法操作时的结果标志位,结果为负则N=1;结果为零或为正时N=0.
Z:两数进行减法操作时的结果标志位,结果为零则Z=1;否则Z=0.
I:置1时屏蔽IRQ中断;
F:置1时屏蔽FIQ中断。
M[4:0]:标明ARM处理器的工作模式,如下图所示: