![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
В зависимости от типа обращения к памяти производится выбор соответствующего сегментного регистра и способа определения внутрисегментного смещения (см. табл. 5).
Сумматор адресов осуществляет вычисление 20-битовых физических адресов.
Указатель команд IP хранит смещение следующей команды в текущем кодовом сегменте.
3.1.2. Режимы адресации
В коде команды можно выделить несколько групп бит, называемых полями. Поле кода операции (КОП) показывает, что должен делать компьютер, остальные поля идентифицируют информацию об адресах операндов и результат операции. Обычно, если команда бинарная, результат помещают на место одного из операндов. Для микропроцессора 8086 в бинарных операциях один из операндов помещается в любом РОН или является константой, а второй размещается либо в РОН, либо в памяти.
Способ определения адреса операнда по адресным полям команды называется режимом адресации.
Типичные режимы адресации МП 8086 делятся на два класса:
- режимы адресации данных;
- режимы адресации переходов.
Назовём эффективным адресом ЕА- 16-битный логический адрес offset
Различают следующие режимы адресации данных:
- непосредственный;
- прямой;
- регистровый;
- регистровый косвенный;
- регистровый относительный;
- базовый индексный;
- относительный базовый индексный;
1. Непосредственный: данное длиной 8 или 16 бит является частью команды.
Пример: MOV AX, 96H.
2. Прямой: 16-битный эффективный адрес данного является частью команды.
Пример: MOV AX, Tadl,
где Tadl- символическое имя ячейки памяти;
Регистровый: данное содержится в определяемом командой одном из 8 РОН.
Пример: MOV AX, BX.
3. Регистровый косвенный: эффективный адрес операнда находится в базовом регистре BX или индексных регистрах SI, DI., определяемых командой.
Пример: MOV AX, [BX].
4. Регистровый относительный: эффективный адрес равен сумме 8 или 16-битного смещения и содержимого базового или индексного регистров. Используемые регистры: BX, BP, SI, DI.
ЕА={BX (BР), (SI), (DI)}+{8- (16)-битное смещение}
Пример: MOV AX, [BX+20h].
5. Базовый индексный: эффективный адрес равен сумме содержимого базового и индексного регистров, определяемых командой. В качестве базовых регистров используются регистры{BX, BP}, а индексными регистрами могут быть{SI, DI}
Пример: MOV AX, [BX+SI].
6. Относительный базовый индексный: эффективный адрес равен сумме 8 или 16-битного смещения и базово-индексеого адреса.
Пример: MOV AX, [BX+SI-569].
Физический адрес операнда в памяти определяется содержимым сегментного регистра, как правило, (DS)*16+ЕА.
Дата публикования: 2015-11-01; Прочитано: 716 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!