在学习 x64 时,我很难理解 intel 手册中的一些符号。
我们来看看
0xC7
MOV
:
关于
/0
../7
它说:
历史上该文档仅指定了 ModR/M.reg 字段 使用符号 /0 ... /7 进行限制并且未指定 编码中 ModR/M.mod 和 ModR/M.r/m 字段的限制 盒子。
我的问题是:
/0
后面的数字是限制代码,但是哪个限制呢?解释指令时是什么意思?c7c701020304...
这样的字节,如何知道我是否需要准备imm16(0102
或imm32(01020304
)?通过测试,我知道在这个imm32
中,但我不明白为什么。我推断它与 rex+modrm 有关。{ xxd --ps -r | ndisasm -b64 -; } <<<c7c701020304
00000000 C7C701020304 mov edi,0x4030201
ndisasm
将其解析为 imm32
而不是 imm16
?