1. 首先要谈流水线在arm执行过程中┅般分为取指,译码执行阶段
第一条指令在执行阶段
第二条指令在译码阶段
当前正在执行的指令地址为pc-8,第二条就为pc-4而pc现在真正指向巳处于pc位置
2. 一般pc在发生中断时lr保存的是当前的pc值,这里pc值是多少呢?
当发生中断肯定保存的pc是第三条指令而我们从中断返回肯定不是執行第三条指令,而是紧接着的第二条指令所以应该保存的 lr = pc - 4,但是当执行到此位置时pc值已经改变肯定不对,还好发生中断时 mov lrpc 所以这裏就可以直接使用 sub lr,lr#4