Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АЭВМ(Ответы).doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
8.77 Mб
Скачать
  1. Способы адресации.

МП Intel 8085 использует пять способов адресации:

Неявная адресация. Команда STC (восстановить индикатор переноса) относится только к индикатору переноса и никакому другому регистру или памяти.

Регистровая адресация. Когда используются команды с этим способом адресации, операция и источник операнда точно определены (рис.42, где показано выполнение команды ADD C). В этом примере операнд в регистре источника (регистр C) складывается с операндом, содержащимся в аккумуляторе. После того, как команда ADD C выполнена, сумма (0000 11112) помещается в аккумулятор. Обычно результат влияет на индикаторы регистра состояния.

Два операнда являются содержимым внутренних регистров МП (A и C). Команды регистровой адресации очень эффективны в том смысле, что используют только один байт памяти программы. Они быстро выполнимы, так как не используют операцию извлечения данных из памяти.

Непосредственная адресация. Команды непосредственной адресации являются командами, по которым данные следуют непосредственно за КОП. В качестве примера на рис.43 показана команда ADI (непосредственное сложение). Микропроцессор извлекает КОП (C6H в этом случае) из памяти программы. После декодирования МП определяет, что речь идет о команде с непосредственной адресацией. Он находит данные в ячейке памяти, следующей непосредственно за ячейкой, содержащей КОП. Эти следующие непосредственно за КОП данные (0000 10002) складываются с содержимым аккумулятора (0000 11002), где и помещается сумма (0001 01002).

Все команды непосредственной адресации МП Intel 8085, за исключением двух, используют аккумулятор как неявный операнд (например, команда ADI на рис.43). Две команды являются необычным — MVI (передать непосредственно), которая может передать данные, следующие непосредственно за КОП, в любой регистр или память, и команда LXI (загрузить непосредственно пару регистров), которая загружает 16-разрядное число в пару регистров. Эти команды, следовательно, не связаны с аккумулятором.

Прямая адресация. Операции, использующие прямую адресацию точно описываются трехбайтовым форматом команд (рис.44). Первый байт содержит КОП команды прямой адресации, второй — МБ и третий — СБ адреса операнда.

На рис.44 представлено выполнение команды LDA (загрузить A прямо) микропроцессором Intel 8085. Три байта команды представлены внизу слева. Код операции LDA— 3AH, следующих 2 байта составляют 16-разрядный адрес (0200H), и ячейка памяти данных с адресом (0200Н) загружается МП. Содержимое (1111 11112) этого адреса загружается в аккумулятор.

Косвенная регистровая адресация. Команды с такой адресацией обращаются в память, используя содержимое пары регистров для указания на адрес операнда. На рис.45 приведен пример этого типа команд. Команда ADD М (сложить память) складывает содержимое ячейки памяти по адресу, на который указывает пара регистров HL МП, с содержимым аккумулятора. В этом случае HL указывает на ячейку памяти 2050H, операнд (0000 00012) в этой ячейке памяти складывается с содержимым аккумулятора (1111 11112), т.е. 0000 0001+1111 1111 = 100000000. Восемь наименее значимых бит суммы помещаются в аккумулятор после выполнения команды ADD М, а соответствующие индикаторы в зависимости от результата устанавливаются или сбрасываются.

Комбинированные способы адресации. Несколько команд МП Intel 8085 используют сочетание различных способов адресации. Вызов подпрограммы CALL. например, сочетает прямую и косвенную регистровую адресации. Прямой адрес в CALL точно описывает адрес вызываемой подпрограммы, адрес косвенного регистра является адресом указателя стека. Команда CALL помещает в стек прежде всего текущее содержимое счетчика команд по точно описанному указателем стека адресу, затем процессор загружает адрес прямо в счетчик команд. Наконец МП ветвится на подпрограмму, адрес которой является теперь содержимым счетчика команд.

Для процессоров исп. сегментированную память (с 8086) дополнительно исп. следующие виды адресации:

1. Непосредственный. Данное длиной 8 или 16 бит является частью команды.

2. Прямой. 16-битный эффективный адрес данного является частью команды

3. Регистровый. Данное содержится в определяемом командой регистре 16-битный операнд может находиться в регистрах AX, BX. CX, DX, SI. DI. SP или BP, а 8-битный в регистрах AL, AH, BL, BH, CL, CH, DL или DH.

4 . Регистровый косвенный. Эффективный адрес, данного находится в базовом регистре ВХ или индексном регистре определяемых командой:

5. Регистровый относительный. Эффективный адрес равен сумме 8- или 16-битного смещения и содержимого базового или индексного регистров

6. Базовый индексный. Эффективный адрес равен сумме содержимого базового и индексного регистров, определяемых командой:

7. Относительный базовый индексный. Эффективный адрес рацеи сумме 8-или 16-битного смещения и базово-индексного адреса:

Предположим, что (BX) = 0158, (DI) = 10А5 смещение - 1В57, (DS) = = 2100 и DS- сегментн регистр. Тогда различные режимы адресации дают следующие эффективные и физические адреса:

Прямой: EA=1В57, Физический адрес = 1В57 + 21000 = 22В57.

Регистровый: ЕА нет — данное в указанном регистре.

Регистровый косвенный (с участием регистра ВХ): ЕА = 0158, Физический адрес = 0158 + 21000 = 21158.

Регистровый относительный (с участием регистра ВХ): ЕА = 0158+ 1B57 = 1CAF; Физический адрес = 1CAF + 21000 = 22CAF

Базовый индексный (с участием регистров BX и DI): ЕА = 0158 + 10А5 = 11FD, Физический адрес = 11FD + 21000 = 221FD.

Относительный базовый индексный (с участием регистров ВХ и 01):ЕА = 0158 + 10А5 + 1В57 = 2D54, Физический адрес = 2D54 + 21000 = 23D54.