Зарегистрировать косвенную адресацию

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

MOV [BX] + 20, AX

а также

MOV [BX + 20], AX

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

И для 2-го случая мы перемещаем значение AX в адрес BX+ 20

Благодарю.

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

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

Другие вопросы по тегам