在x86-64汇编中,我有以下说明
mov dx, word [esi-5]
Nasm2.13.03
生成:
66 67 8B 56 FB
yasm1.3.0
生成:
67 66 8B 56 FB
66 67
操作码是修饰符,因此它8B 56 FB
本身就是:
mov edx, dword [rsi-5]
我注意到:
66 8B 56 FB
还评估为:
mov dx, word [rsi-5]
我有两个问题:
1)为什么nasm
&yasm
发出这个67
操作码字节填充?(67
仅靠它自己不足以减少edx
到dx
,它需要包含66
) 2)有没有办法在没有nasm / yasm 的情况下
发出较短的 4 字节指令? 67