Зарегистрировать косвенную адресацию
Я хотел бы знать, если есть разница между:
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. Вы можете использовать только непосредственное смещение по адресу (второй случай).