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

What does the PC register point to after fetch is completed?

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

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

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

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

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

(我猜想MIPS也是一样,但我不能说。)