ARM总共有37个寄存器,其中31个通用寄存器和6个状态寄存器。
通用寄存器[31]:R0-R15
- R0-R7[8]:未分组寄存器 R8-R14[22]:分组寄存器
- R8-R12[5×2]:FIQ模式访问寄存器R8_fiq-R12_fiq;其他模式访问寄存器R8_usr-R12_usr。
- R13[6]:常作为堆栈指针,用户和系统模式共用一个。当程序进入异常模式时,将需要保护的寄存器放入R13所指向的堆栈中。
- R14[6]:(子程序)链接寄存器,用来保存R15的值。 R15[1]:程序计数器PC
状态寄存器[6]:CPSR,SPSR
- CPSR[1]:Current Program Status Register,当前程序状态寄存器,可以在任何模式下访问,包括条件标志位、中断标志位、当前处理器模式标志位以及其他一些相关的控制和标志位。
- SPSR[5]:Saved Program Status Register,备份程序状态寄存器,除了用户模式和系统模式不属于异常模式,其他的都有一个专用的SPSR,在进入异常模式时保存CPSR,用于异常处理后恢复CSPR。