spsr是用来保存cpsr状态,当异常中断发生时候,用来回退cpsr的值
比如异常发生,步骤
1:将LR(R4)加偏移量,送到PC中
2:将cpsr中状态送到spsr,保存cpsr中的状态
3:如果需要禁止中断位,将中断位进行禁止(I禁止IRQ中断,F禁止FIQ中断)
先对LR等寄存器进行操作,然后保存cpsr(程序状态寄存器),然后对设置中断位
其中LR(R14)(还要sp(R3),PC(R15))一般有两种用法
1:程序跳转,时候用来返回PC值
例BX loop
。。。。
loop
。。。。
mov pc LR;
执行跳转
2:异常中断发生时候,R14保存异常返回地址