此处解释为何ARM7中,CPU地址,即PC,为何有PC=PC+8这一说法:
众所周知,AMR7,是三级流水线,其细节见图:
图表 23 AMR7三级流水线
首先,对于ARM7对应的流水线的执行情况,如下面这个图所示:
ARM7
图表 24 ARM7三级流水线状态
然后对于三级流水线举例如下:
图表 25 ARM7三级流水线示例
从上图,其实很容易看出,第一条指令:
add r0, r1,$5
执行的时候,此时PC已经指向第三条指令:
cmp r2,#3
的地址了,所以,是PC=PC+8.