Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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




При косвенной адресации величина смещения не задается, а рассчитывается тем или иным образом.

2.1. Косвенная регистровая (базовая) адресация

Смещение операнда находится в одном из регистров BX, SI, DI или BP. Синтаксически в команде этот режим адресации выражается заключением имени регистра в квадратные скобки «[ ]».

Например, запись в регистр AX слова, которое берется из памяти по эффективному адресу (смещению), находящемуся в регистре BX:

 

MOV AX,[BX]

 

Физический адрес первого байта слова равен .

Например, запись в регистр DH байта, который берется из памяти по эффективному адресу (смещению), находящемуся в регистре SI:

 

MOV DH,[SI]

 

Физический адрес байта равен .

Как и в случае прямой адресации, сегментный регистр DS используется при определении физического адреса по умолчанию, но не во всех случаях: если смещение берут из регистров SP или BP (при работе со стеком), то в качестве сегментного регистра используется регистр SS.

2.2. Косвенная регистровая (базовая) адресация со смещением

Смещение операнда определяется как сумма значения находящегося в одном из регистров BX, SI, DI или BP и дополнительного 8- или 16-разрядного смещения, в качестве которого можно указать число или адрес метки.

Например

 

ADD AX,[BX+2]

MOV DH,array1[SI]

 

В последнем примере в регистр DH будет записан байт из памяти, эффективный адрес которого определяется суммой значения регистра SI и эффективного адреса идентификатора array1.

2.3. Косвенная базовая индексная адресация

При этом виде адресации эффективный адрес (смещение) формируется как сумма содержимого двух регистров общего назначения: базового и индексного.

Например

 

ADD AX,[BX+DI]

MOV DH, [BX+SI*2]

 

2.4. Косвенная базовая индексная адресация со смещением

Этот вид адресации является дополнением косвенной индексной адресации. Эффективный адрес формируется как сумма трех составляющих: содержимого базового регистра, содержимого индексного регистра и значения поля смещения в команде, в качестве которого можно указать число или адрес метки. К примеру, команда MOV AH,[SI+5+DX] пересылает в регистр AH байт по физическому адресу: .

 

Вопросы для самопроверки

1. Какие из следующих идентификаторов неправильны и почему?

1.1. RES;

1.2. AH;

1.3. 5ERH;

1.4. DE.F

2. В чем различие между командой и директивой?

3. Какие символы могут содержаться в комментариях?

4. Является ли конструкция B5H правильной шестнадцатеричной константой?

5. Есть ли разница между идентификаторами perem и PEREM в программе на языке ассемблера?

6. В чем разница между константами '7' и 7D?

7. Какое из чисел больше 10В, 10D или 10H?

8. Выполните арифметическую операцию: 11001B+2FH.

 

 





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 468 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Сложнее всего начать действовать, все остальное зависит только от упорства. © Амелия Эрхарт
==> читать все изречения...

2217 - | 2091 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.007 с.