2011-04-27 130 views
1

我想知道是否有之间的差异:寄存器间接寻址

MOV [BX] + 20, AX 

MOV [BX + 20], AX 

我的理由是,在第一种情况下,我们移动的AX + 20值成解决BX

而对于第二种情况,我们移动的AX值到地址BX+ 20

谢谢。

回答

1

你对第一个案件的推理是错误的。这不是一个有效的构造(除非你定义了一个宏来将它变成2条指令)。你不能在MOV中间粘贴一个值ADD。您只能使用地址的直接偏移量(第二种情况)。

2

一些汇编器编译器允许两种组合。 但是,调试器应该给你正确的答案!

Test.asm.5: MOV [BX] + 20, AX 
004552B4 894314   mov [bx+$14],ax 
Test.asm.6: MOV [BX + 20], AX 
004552B7 894314   mov [bx+$14],ax