编码多字节无操作指令(x86 / x64)

时间:2015-05-14 02:09:45

标签: assembly x86 64-bit machine-code

此指令位于intel x64参考手册的第1018页。这是它的样子:

Opcode    Instruction Description
90        NOP         One byte no-operation instruction.
0F 1F /0  NOP r/m16   Multi-byte no-operation instruction.
0F 1F /0  NOP r/m32   Multi-byte no-operation instruction.

我在某处读到最大无操作长度是9个字节。 16/32位寄存器或存储器地址中的无操作长度,或者我自己用一堆零编码它,如果是这样,r / m16或r / m32如何应用?

1 个答案:

答案 0 :(得分:0)

来自xed:

xed64 -64 -e NOP MEM4:EAX,EAX,1,00000000
OPERAND ORDER: MEM0 
Encodable! 670F18A40000000000
.byte 0x67,0x0f,0x18,0xa4,0x00,0x00,0x00,0x00,0x00

使用9字节nop的优点是减少解码器的压力,每个周期只能解码4条指令。 NOP在技术上是一种指令。