ARM9中斷與PC
當(dāng)前"執(zhí)行PC"=當(dāng)前PC-8。例如,如下圖所示,當(dāng)前“取值PC”=16,當(dāng)前“解碼PC”=12,當(dāng)前“執(zhí)行PC”=8。
本文引用地址:http://2s4d.com/article/201611/320028.htm2, 發(fā)生IRQ異常,執(zhí)行保護(hù)操作,LR中保存由于FIQ或IRQ占先而沒有被執(zhí)行完的指令的地址的下一條地址(LR中保存的是當(dāng)前PC的值,也就是取值的指令地址),即LR指向了指令地址=16的指令,但指令地址=12的指令還沒有執(zhí)行完,中斷返回后還要繼續(xù)執(zhí)行
3, 進(jìn)入中斷服務(wù)程序
4, 中斷返回前,對LR處理,LR=LR-4,指向之前已譯碼但沒被執(zhí)行的指令的地址(如果返回的時候直接返回PC,那么中間就有一個指令沒有執(zhí)行)
5, 返回
注:ARM9是五級流水,圖中只畫出了三級流水。
評論