我正在调查的一个程序有以下代码(由 IDA 反汇编,我进行了一些轻微的审查):
__text:....B9 call <redacted>
__text:....BE nop
__text:....BF nop dword ptr [rax+00h]
我有两个问题。首先,为什么编译器会插入这些nop
s?它们似乎不用于任何对齐目的。
其次,nop
相对寻址参数是什么?它的十六进制是0F 1F 40 00
. 查看http://ref.x86asm.net/,这似乎是一条名为“hintable NOP”的指令,但我无法找到有关它的相关信息。
顺便说一下,下一条指令开始于....C3
并且是一个真正的/生产性指令(即,不是 anop
或任何道德上等同于 a 的东西nop
)。