1. PC 总是指向下一条将要被执行的指令,而不是指向正在被执行的指令,这是有道理的,因为执行指令不是一个 atom 过程,而是分成了好多步骤,在执行指令的过程中 cpu 完全有可能将下一条将要执行的指令的地址加载到 PC 中。

2. jg 指令后面跟 rep;ret 两条指令,而不是直接跟 ret 指令,是因为如果直接跟 ret 指令,由于 cpu 存在分支预测机制,但是对于 jump 指令后面跟随的 ret 指令,cpu 无法 predict ret 的地址,所以插入一条 rep 指令,相当于 nop 指令, 并不影响 code 的行为

 

相关文章:

  • 2022-12-23
  • 2021-07-22
  • 2022-02-11
  • 2022-12-23
  • 2022-12-23
  • 2021-09-05
  • 2021-10-29
  • 2022-01-02
猜你喜欢
  • 2021-04-01
  • 2022-12-23
  • 2022-01-07
  • 2021-12-05
  • 2021-12-03
  • 2022-12-23
  • 2022-01-05
相关资源
相似解决方案