我想知道两者之间是否有区别:
MOV [BX] + 20, AX
和
MOV [BX + 20], AX
我的理由是,对于第一种情况,我们将值移动AX + 20
到地址中BX
对于第二种情况,我们将 的值移动AX
到地址中BX+ 20
谢谢。
一些汇编编译器允许这两种组合。但是,调试器应该给你正确的答案!
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
你对第一种情况的推理是错误的。这不是一个有效的构造(除非您定义了一个宏来将其转换为 2 条指令)。您不能在 MOV 中间添加值 ADD。您只能使用地址的直接偏移量(第二种情况)。