YASMmov指令给出错误:操作数1的大小无效
我正在尝试做一些来自 TASM 的基本 YASM,这行代码会出错:
mov [var], 7
我已经定义,像这样的变量:var db 5。
即使在尝试这样做var: db 5之后仍然出错并说:
错误:操作数 1 的大小无效
回答
与 TASM 不同,YASM/NASM 不查看 的声明var来决定它是字节、字、双字等。操作数大小需要在任何指令中指定,如果它不是从正在使用的寄存器中隐含的。所以你必须写
mov byte [var], 7
注意
mov [var], bl
不需要byte,因为 8 位操作数大小是从 8 位寄存器的使用推断出来的bl。