2016-09-24 125 views
-2

我想交换到8位变量var1和var2,使用寄存器,但它给了我这个错误。这段代码有什么问题?错误program.asm(8):错误A2070:无效的指令操作数

include irvine32.inc 

.data 

var1 byte 20 

var2 byte 30 

.code 

main proc 

mov al,var2 

mov var2,var1 

mov var1,al 

call dumpregs 

exit 

main endp 

end main 
+1

你不能在一个'mov'指令移动存储器到存储器。这是一个问题'mov var2,var1'。您可以将内存移动到临时寄存器,然后从该寄存器移动到另一个内存位置。 –

回答

0

内存到内存操作不准,你可以使用此代码:

mov al,var1 

mov ah,var2 

mov var1,ah 

mov var2,al 
+0

您不需要XCHG,只需将AH存储到var1并将AL存储到var2即可。 –

+0

你是对的,这是一个不必要的操作,我编辑了解决方案。 –