ARM 有37个32-Bits长的寄存器.
1 个用作PC( program counter)
1个用作CPSR(current program status register)
5个用作SPSR(saved program status registers)
30 个通用寄存器
Cortex体系结构下有40个32-Bits长的寄存器
Cortex-A多出3个寄存器,Monitor 模式 r13_mon , r14_mon
当前处理器的模式决定着哪组寄存器可操作. 任何模式都可以存取:
相应的r0-r12子集
相应的 r13 (the stack pointer, sp) and r14 (the link register, lr)
相应的 r15 ( the program counter, pc)
相应的CPSR(current program status register, cpsr)
特权模式 (除system模式) 还可以存取;
相应的 spsr (saved program status register)
程序状态寄存器(cpsr)
条件位:
N = Negative result from ALU
Z = Zero result from ALU
C = ALU operation Carried out
V = ALU operation oVerflowed
Q 位:
仅ARM 5TE/J架构支持
指示饱和状态
J 位
仅ARM 5TE/J架构支持
J = 1: 处理器处于Jazelle状态
DNM位:Do Not Modify
GE[3:0] 大于或等于(当执行SIMD指令时有
效)
IT[7:2] IF….THEN….指令执行状态位
E位:大小端控制位
A位:A=1 禁止不精确的数据异常
中断禁止位:
I = 1: 禁止 IRQ.
F = 1: 禁止 FIQ.
T Bit
T = 0;J=0; 处理器处于 ARM 状态
T = 1;J=0 处理器处于 Thumb 状态
T = 1;J=1 处理器处于 ThumbEE 状态
Mode位:
处理器模式位