2016-09-24 3 views
-2

レジスタを使用してvar1とvar2の8ビット変数にスワップしたいが、このエラーが出る。このコードで何が問題になっていますか?メモリ動作にエラー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

あなたは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

あなたはそうです、それは不必要な操作で、私は解決策を編集しました。 –

関連する問題