0

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仅靠它自己不足以减少edxdx,它需要包含66) 2)有没有办法在没有nasm / yasm 的情况下
发出较短的 4 字节指令? 67

4

1 回答 1

0

这个问题做出了错误的假设66 8B 56 FB

mov        dx, word [rsi-5] 

相当于

`66 67 8B 56 FB` or `67 66 8B 56 FB` 

mov        dx, word [esi-5] 

66减少edxdx
67减少[rsi-5][esi-5]

于 2018-03-25T15:01:39.507 回答