1.ARM有7种模式和37个寄存器【引用了一些网上的现有的比较好的图片,向图片作者致敬】
以上图标黑色部分为共用的部分。USR和SYS共用同一个寄存器集。
(1)共同寄存器集合:R0-R7,PC,CPSR
(2)除了USR/SYSTEM其他模式具有自己的 SP,LR和SPSR,用来备份当前模式的堆栈,程序状态,及CPSR。
2.CPSR的解析
CPSR由上可以分为4个域:F,S,X,C,其中F,C域最重要。
条件位:
N = Negative result from ALU
Z = Zero result from ALU
C = ALU operation Carried out
V = ALU operation oVerflowed
Q 位:
仅ARM 5TE/J架构支持仅ARM xT架构支持
T Bit
指示饱和状态 T = 0: 处理器处于 ARM 状态,T = 1: 处理器处于 Thumb 状态
J 位
仅ARM 5TE/J架构支持 处理器模式位
J = 1: 处理器处于Jazelle状态
中断禁止位:
I = 1: 禁止 IRQ.
F = 1: 禁止 FIQ.
Mode位:指示ARM的模式
3.Thumb和ARM状态下各个模式的Mode位和寄存器分布