【发布时间】:2015-06-02 21:18:43
【问题描述】:
我试图在 8086 汇编语言中使用指令 MOV [SI],00H。但是 masm 汇编器给了我一个错误说:Operand must have size。我无法理解其背后的原因。
另外,语法是否允许?因为在将内存位置的内容与常量值进行比较时,我又遇到了同样的错误。我是 8086 编程的新手,所以很难弄清楚。
【问题讨论】:
我试图在 8086 汇编语言中使用指令 MOV [SI],00H。但是 masm 汇编器给了我一个错误说:Operand must have size。我无法理解其背后的原因。
另外,语法是否允许?因为在将内存位置的内容与常量值进行比较时,我又遇到了同样的错误。我是 8086 编程的新手,所以很难弄清楚。
【问题讨论】:
MASM 报错是因为它不知道 SI 寄存器指向的地址是什么类型的数据。是一个字节还是一个字?
这就是为什么您必须提供尺寸标签的原因。
mov byte ptr [si], 0
或
mov word ptr [si], 0
【讨论】: