CPSR → SPSR;修改 CPSR(T,禁止中断,模式位异常);保存返回 LR;修改 PC 指向表
处理过程
保存现场:这个过程是由CPU自动完成(四大步三小步)
- 保存
CPSR
到SPSR_<MODE>
寄存器中
- 修改
CPSR
寄存器: - 修改状态位(T位),切换到 ARM 状态
- 根据需要禁止
TRQ
和FIQ
中断位 - 修改
CPSR
寄存器中的模式位,切换到对应的异常模式M[4:0]
- 保存返回地址到
LR_<MODE>
- 修改
PC
指针,指向对应的异常向量表
恢复过程
- 恢复
SPSR_<mode>
寄存器中的值,到CPSR
寄存器中
- 恢复
LR_<mode>
寄存器中的值,到PC
寄存器中