为什么大部分ARM CPU(32位)的PC=当前执行指令地址+8呢?

1 为什么大部分ARM CPU(32位)的PC=当前执行指令地址+8呢

我们知道ARM是采取流水线结构的,比如ARM7为三级流水线:取指、译码、执行,ARM9为五级流水线:取指、译码、执行、缓存/数据、回写。

1.1 ARM7三级流水线

为什么大部分ARM CPU(32位)的PC=当前执行指令地址+8呢?_第1张图片

可以看出来,由于执行落后于取指两个周期,所以对于三级流水线来说PC=当前执行指令地址+8。

1.2 ARM9三级流水线

为什么大部分ARM CPU(32位)的PC=当前执行指令地址+8呢?_第2张图片

总结: 不管是ARM7还是ARM9,由于执行落后于取指两个周期(时钟周期),所以PC的值总是等于当前执行的指令地址加8。

你可能感兴趣的:(Linux)