call [edi+0x21] 在x86-64指令集下有效吗?
Is call [edi+0x21] valid under the x86-64 instruction set?
call [edi+0x21]
在x86-64指令集下有效吗?根据 Intel 手册,FF /2 仅对 r/m64 有效,但我正在测试的在线 encoder/decoder 输出 67 ff 57 21
。是我用错了工具,还是我的理解有误?
地址大小和操作数大小是独立的。即使您使用 32 位地址,内存操作数仍然可以有 64 位大小。所以是的,call [edi+0x21]
是一个有效的 64 位模式指令,编码 67 ff 57 21
也是正确的。
call [edi+0x21]
在x86-64指令集下有效吗?根据 Intel 手册,FF /2 仅对 r/m64 有效,但我正在测试的在线 encoder/decoder 输出 67 ff 57 21
。是我用错了工具,还是我的理解有误?
地址大小和操作数大小是独立的。即使您使用 32 位地址,内存操作数仍然可以有 64 位大小。所以是的,call [edi+0x21]
是一个有效的 64 位模式指令,编码 67 ff 57 21
也是正确的。