使用常量值和内存位置作为操作数时出现8086 MOV指令错误

时间:2015-06-02 21:18:44

标签: x86-16 mov

我试图在8086汇编语言中使用指令MOV [SI],00H。但masm汇编程序给了我一个错误说:Operand must have size。我无法理解背后的原因。

此外,语法是否允许?因为在将内存位置的内容与常量值进行比较时,我再次得到了相同的错误。我是8086编程的新手,所以很难弄清楚。

1 个答案:

答案 0 :(得分:3)

MASM抱怨是因为它无法知道SI寄存器指向的地址是什么类型的数据。是字节还是单词?
这就是你必须提供尺码标签的原因。

mov byte ptr [si], 0

mov word ptr [si], 0