ARM体系中的3种控制程序执行的方式
- 正常执行过程中,每执行1条ARM指令,PC的值加4个字节;每执行1条Thumb指令,PC的值加2个字节。整个过程按照顺序执行。
- 通过跳转指令,调到特定的地址开始执行或者特定的子程序出执行。B指令用于执行跳转;BL指令在执行跳转的同时,还保存了子程序的返回地址;BX指令在执行跳转的同时,根据目标地址的最低位可以将程序状态切换到Thumb状态;BLX指令等同于BL和BX指令的集合。
- 当异常中断发生时,系统执行完当前的指令后,将跳转到中断处理程序处。执行完毕后,返回到中断的指令的下一条指令开始继续执行。

异常中断的响应过程
- 保存处理器的状态、中断屏蔽位和各条件标志位。
- 设置CPSR让处理器进入对应的状态。
- 设置LR寄存器的返回地址。
- 设置PC寄存器为中断向量的地址,跳转到异常处理程序。
从异常处理程序返回
- 恢复处理器的状态:将SPSR的数据复制到CPSR中
- 返回到产生异常中断的指令的下一条指令处开始执行:将LR寄存器的数据复制到PC中
2—ARM中的异常中断
原文:https://www.cnblogs.com/foggia2004/p/10706317.html