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位和寄存器分布

本文介绍了ARM架构中的7种运行模式和37个寄存器,重点讲解了共用寄存器和各模式特有的寄存器。此外,详细解析了CPSR寄存器的4个主要域,包括条件位、中断禁止位和处理器模式位。同时,提到了Thumb和ARM状态下的模式位和寄存器分布,并给出了切换ARM模式的示例代码。
最低0.47元/天 解锁文章
1894

被折叠的 条评论
为什么被折叠?



