К какому типу адресации относятся эти инструкции? - PullRequest
1 голос
/ 20 сентября 2011

У меня проблемы с распознаванием инструкций.

mov [300], bl
mov [bx], cl

Ответы [ 2 ]

4 голосов
/ 20 сентября 2011

Я думаю, [300] означает «значение, сохраненное по адресу 300. С другой стороны, [bx] означает« значение, сохраненное по адресу, сохраненному в регистре BX ». (Обратите внимание, что ни одно из них не является постоянным значением, которое простобыть голой 300.)

0 голосов
/ 03 октября 2011

Предположим,

bx = 0xF000
bl = 0x00   (duh)
cl = 0x10

Прямая адресация

mov byte ptr [300], bl

Записывает содержимое bl (0) в адрес 300.

косвенная адресация

mov byte ptr [bx], cl

записывает 0x10 в адрес 0xF000

косвенная адресация с прямым смещением

mov byte ptr[bx+300], cl

записывает 0x10 вадрес 0xF12C (300 десятичный = 12C шестнадцатеричный)

x86 Имеет много других режимов адресации, см .: http://www.ic.unicamp.br/~celio/mc404s2-03/addr_modes/intel_addr.html

Для дальнейшего усложнения, это объяснение действительно для IntelСинтаксис ассемблера, в AT & T, а также синтаксис GAS, источник и назначение поменялись местами.
Это не должно беспокоить вас слишком много, потому что здравомыслящие люди используют только синтаксис Intel, с ним гораздо проще работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...