一些汇编中的 trick

1. PC 老是指向下一条将要被执行的指令,而不是指向正在被执行的指令,这是有道理的,由于执行指令不是一个 atom 过程,而是分红了好多步骤,在执行指令的过程当中 cpu 彻底有可能将下一条将要执行的指令的地址加载到 PC 中。atom

2. jg 指令后面跟 rep;ret 两条指令,而不是直接跟 ret 指令,是由于若是直接跟 ret 指令,因为 cpu 存在分支预测机制,可是对于 jump 指令后面跟随的 ret 指令,cpu 没法 predict ret 的地址,因此插入一条 rep 指令,至关于 nop 指令, 并不影响 code 的行为code

相关文章
相关标签/搜索