汇编中的异常处理流程

Tags
ARM
汇编
ID
11
 
 
CPSR → SPSR;修改 CPSR(T,禁止中断,模式位异常);保存返回 LR;修改 PC 指向表

处理过程

保存现场:这个过程是由CPU自动完成(四大步三小步)
  1. 保存 CPSRSPSR_<MODE> 寄存器中
  1. 修改 CPSR 寄存器:
    1. 修改状态位(T位),切换到 ARM 状态
    2. 根据需要禁止TRQFIQ中断位
    3. 修改CPSR寄存器中的模式位,切换到对应的异常模式 M[4:0]
  1. 保存返回地址到 LR_<MODE>
  1. 修改 PC 指针,指向对应的异常向量表

恢复过程

  1. 恢复 SPSR_<mode> 寄存器中的值,到 CPSR 寄存器中
  1. 恢复 LR_<mode> 寄存器中的值,到 PC 寄存器中