直接看下面这段ARM汇编: 此时运行到的代码为ADD R3,PC 此时看一下寄存器窗口的值: 按理来说执行完ADD R3,PC后的效果应该是R3=R3+PC ,R3=40A1D5C8 但是我们可以执行以下看看实际的值是什么 我擦...居然和我们算的不一样...R3的值变成了40A1D5CC,比我们计算的值多了4这是为什么呢? 这里引入一些ARM的流水线机制 ARM7的三级流水线示意图: ARM9的五级流水线示意图: 很明显的可以看出,不管是三级流水线还是五级流水线,每条ARM指令都有一个取指,解…