x86 16 - 8086 MOV指令在使用常量和内存位置作为操作数时出错



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

还有,这种语法是允许的吗?因为在比较内存位置的内容与恒定值时,我又得到了同样的错误。我刚接触8086编程,所以很难弄清楚。

MASM报错,因为它不知道SI寄存器所指向的地址上有什么数据。它是字节还是字?
这就是为什么你必须提供一个大小标签。

mov byte ptr [si], 0

mov word ptr [si], 0

最新更新