2014-03-13 25 views

回答

4

您正在描述早期的ARM体系结构,其中ARM内核从一开始就至少有三个流水阶段。较新的ARM架构在其流水线中有更多的阶段,但是作为向后兼容性怪癖PC在执行指令时仍然是+8地址。

例如手册说ARM1156T2-S有9级,ARM946E-S具有5等

核心流水线级变为等;取,解码和执行。取指从内存中加载指令,所以如果你认为你现在正在执行n指令,那么译码阶段是n + 4,下一个读取是在n + 8。它与4的乘法一致,因为ARM中的指令在ARM模式下是4个字节。 (如果你在拇指/拇指2模式下,它可能是+4)

+2

FWIW,在AArch64中不再适用。所有与PC相关的偏移量都是从指令的地址计算出来的,PC不能作为GPR访问。 –

0

了解这是两条指令。对于32位架构,这意味着手臂模式提前8个字节,两条指令。但在拇指模式下,它可以在4到8个字节之间,重要的是两条指令...

相关问题