CPSR和SPSR

CPSR:current program status register,当前程序状态寄存器,在任何处理器模式下被访问。它包含了条件标志位、中断禁止位、当前处理器模式标志以及其他的一些控制和状态位。
 

313029282726~876543210
NZCVQ...IFTM4M3M2M1M0


I:IRQ中断禁止位。1禁止IRQ中断,0允许IRQ中断。
F:FIQ中断禁止位。1禁止FIQ中断,0允许FIQ中断。
T:这一位只在ARMv4T指令集版本及以上才有效。因为ARMv4版本及以下都不支持Thumb指
     令集。在支持Thumb指令集的处理器中,T=0表示处于ARM状态,T=1表示处于Thumb状态。
M[4:0]:处理模式:

M[4:0]|处理器模式
0b10000用户模式
0b1001快速中断模式
0b10010中断模式
0b10011管理模式
0b10111数据访问终止
0b11011未定义指令
0b11111系统模式


 SPSR:saved program status register,程序状态保存寄存器,每一种处理器模式下都有一个状态寄存器SPSR,用于保存CPSR的状态,以便异常返回后恢复异常发生时的工作状态。当特定的异常中断发生时,这个寄存器存放CPSR的内容。在异常中断退出时,可以用SPSR来恢复CPSR。由于用户模式和系统模式不是异常中断模式,所以他没有SPSR。当用户在用户模式或系统模式访问SPSR,将产生不可预知的后果。

©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页