关于异常的出/入口问题查看了《ARM体系结构与编程》杜春雷 编著 第1版,还不是很明白:
第 269 页“IRQ和FIQ异常中断处理程序的返回” 一节中很清楚的说明
“当IRQ和FIQ异常中断产生时,程序计数器PC的值已更新,它指向指令后面第3条指令(对ARM指令来说,它指向当前指令地址加12个字节的位置;对THUMB指令来说,它指向当前指令地址加6个字节的位置)。当IRQ和FIQ异常中断发生时,处理器将值PC-4保存到异常模式下的LR_mode中。这时PC-4即指向当前指令后的第二条指令”
1、为什么“这时PC-4即指向当前指令后的第二条指令”?对于THUMB指令 应该是 PC-2才对!
2、返回时通过“SUBS PC,LR,#4”指令即可返回到中断发生时的下一条指令,而不用区分发生异常中断时是在ARM指令下还是THUMB指令下?
请大家指教一二!
|