Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АРМ ЦУиМПС Шуакаевой А.К..doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.36 Mб
Скачать

Способы адресации.

Под адресацией понимается указание, откуда поступает операнд и куда следует поместить результат выполненной операции.

В микропроцессоре КР580ВМ80А применяются три способа адресации:

    1. Прямая адресация используется только в командах, имеющих однобайтовый формат. Под действием таких команд производятся операции, в которых участвуют только регистр А и (или) регистры блока РОН. Здесь прямо в основном (и единственном!) байте кода команды В1 указываются коды нужных регистров.

Пример 1. Составить команду на выполнение операции: код, хранящийся в регистре D, переслать в регистр С.

П р и м е ч а н и е . В этом и последующих параграфах составлять команды мы будем на двух языках: машинном с использованием двоичного и шестнадцатиричного кода, а также на языке Ассемблер (знакомство с языками высокого уровня предусматривается в курсе информатики, поэтому здесь мы их касаться не будем). Записывать составленные команды будем в виде таблицы (для текущего параграфа – это табл. 5.6), но при этом нужно иметь в виду следующее:

    • Предварительно в колонке «Комментарии» следует правильно записать требуемую операцию с использованием символики данного типа микропроцессора сначала конкретно, а затем в общем виде. Затем нужно найти нужную операцию в списке команд микропроцессора, и уже потом начинать записывать команду.

    • Для облегчения понимания двоичные коды машинного языка многих команд разделяются пробелами (промежутками) на группы по два-четыре знака, в действительности никаких пробелов здесь быть не должно!

    • Основная и дополнительная (если она есть) части команд языка Ассемблер должны разделяться пробелом величиной в один знак.

    • Если в команде участвует пара регистров, то всегда указывается только один из регистров пары в зависимости от формы записи: первый – при записи и второй – при записи .

Табл. 5.6

Номер

примера

Машинный язык

Ассемблер

Комментарии

Двоичный код

16-й код

1

0 1 001 010

MOV C,D

;

2

10 000 011

83

ADD E

;

3

11 000 110

С6

ADI 5EH

;

0101 1110

5 Е

Продолжение табл.5.6

Номер

примера

Машинный язык

Ассемблер

Комментарии

Двоичный код

16-й код

4

00 000 110

06

MVI 7AH

;

0111 1010

7 A

7A

5

00 010 001

11

LXI D,B813H

0001 0011

1 3

13

1011 1000

В 8

В8

6

00 001 010

LDAX C

Пример 2. Выполнить арифметическое сложение двух кодов без учета внешнего переноса. Одно из слагаемых хранится в регистре Е (напомним: при выполнении любой арифметической или логической операции другое слагаемое обязательно должно находиться в регистре А, результат выполненной операции микропроцессор опять же обязательно автоматически запишет в регистр А).

    1. Непосредственная адресация используется в командах, имеющих двух- или трехбайтовый формат. Под действием таких команд производятся операции, в которых участвуют непосредственно задаваемые численные значения (операнды, адреса ячеек ОЗУ или портов ввода-вывода). Здесь в дополнительных байтах В2 или В3В2 и указываются непосредственно численные значения.

Пример 3. Выполнить арифметическое сложение двух кодов с учетом внешнего переноса. Одно из слагаемых равно 5ЕН (напомним: буква в конце численного значения указывает на применяемую систему счисления; в данном случае буква Н говорит о том, что слагаемое записано в шестнадцатиричном коде).

Пример 4. В регистр В загрузить код 01111010В.

Пример 5. В пару регистров DE записать код B813H.

    1. Косвенная адресация применяется только в однобайтовых командах обмена информацией с ОЗУ, когда адрес нужной ячейки указывается в паре регистров BC или DE.

Пример 6. Кодовое слово из ячейки оперативной памяти, адрес которой хранится в паре регистров ВС, ввести в микропроцессор (напомним: любой обмен информацией между МП и другими узлами МПС, в том числе и ОЗУ, идет только через регистр А).