0

fetch完成后PC寄存器指向什么?

是要执行的下一条指令的地址,还是别的什么?

4

1 回答 1

2

在 x86 中,IP 寄存器(英特尔的 PC 名称)没有明确定义的值,除了

  • 当它通过调用、中断或故障写入堆栈时,在这种情况下,它具有完成执行的最后一条指令之后的指令的地址。
  • 当它用于 IP 相对寻址时,在这种情况下,它具有包含 IP 相对地址的指令后面的指令的地址。
  • 其他我不会在这里讨论的情况,例如任务切换。

由于流水线,在任何情况下都与获取的最后一条指令无关。事实上,可以同时执行多个具有 IP 相对地址的指令,并且每个指令在其地址计算中使用不同的 IP 值。

(我认为 MIPS 也是如此,但我不能说。)

于 2019-04-10T02:27:17.477 回答