1, 假定当时是PC,PC-4,PC-8。当时”取指PC”=当时PC,当时”译码PC”=当时PC-4,
当时”履行PC”=当时PC-8。例如,如下图所示,当时“取值PC”=16,当时“解码PC”=12,当时“履行PC”=8。
2, 产生IRQ反常,履行维护操作,LR中保存因为FIQ或IRQ占先而没有被履行完的指令的地址的下一条地址(LR中保存的是当时PC的值,也便是取值的指令地址),即LR指向了指令地址=16的指令,但指令地址=12的指令还没有履行完,中止回来后还要持续履行
3, 进入中止服务程序
4, 中止回来前,对LR处理,LR=LR-4,指向之前已译码但没被履行的指令的地址(假如回来的时分直接回来PC,那么中心就有一个指令没有履行)
5, 回来
注:ARM9是五级流水,图中只画出了三级流水。