NOP 是否会影响英特尔 x86 架构中的状态寄存器



我最近注意到英特尔x86汇编中的NOP指令实际上与XCHG EAX, EAX相同

这不会通过更改状态寄存器带来意想不到的结果吗?
例如,如果EAX最初为零,则FLAG寄存器的第六位(零位)将在NOP后设置。

那么在我的代码中使用NOP如何安全呢?

随机的

x86 引用通过声明XCHG指令轻松解释了这一点:

受影响的标志

没有

NOP(或XCHG,或MOV)不会更改x86架构中的FLAGS寄存器。使用NOP始终是安全的。(它怎么会有所不同?

最新更新