Зарегистрировать косвенную адресацию - PullRequest
1 голос
/ 27 апреля 2011

Хотелось бы узнать, есть ли разница между:

MOV [BX] + 20, AX

и

MOV [BX + 20], AX

Я рассуждаю так: для первого случая мы перемещаем значение AX + 20 в адрес BX

А во втором случае мы перемещаем значение AX в адрес BX+ 20

Спасибо.

Ответы [ 2 ]

2 голосов
/ 27 апреля 2011

Некоторые компиляторы ассемблера допускают обе комбинации. Однако отладчик должен дать вам правильный ответ!

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
1 голос
/ 27 апреля 2011

Ваши рассуждения о первом случае неверны.Это недопустимая конструкция (если у вас не определен макрос, чтобы превратить его в 2 инструкции).Вы не можете вставить значение ADD в середине MOV.Вы можете использовать только непосредственное смещение по адресу (второй случай).

...