我将这段代码组装成NASM(将段选择器设置为保护模式,但与该问题无关):
bits 16
.....
bits 32
mov ax, 00010000b
mov ds, ax
mov ax, 00011000b
mov es, ax
NASM反汇编显示机器代码将其视为:
66B810008ED8 mov eax,0xd88e0010
66B818008EC0 mov eax,0xc08e0018
这显然是组装工作中的绝大部分。有人可以说明这里出了什么问题吗?这是一个错误吗?
我还注意到mov edi,即使0在第32位指令之后,但0都没有前缀0x66,但是NASM在操作码后留下了32位。