Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций Микропроцессоры.doc
Скачиваний:
16
Добавлен:
06.12.2018
Размер:
756.22 Кб
Скачать

1.4. Виды выполняемых операций

  1. Операции пересылки и непосредственной загрузки. При выполнении этого вида операций могут использоваться одно-, двух-, и трехбайтовые команды. Наиболее многочисленный класс операций – команды однобайтовые. Возможно использование семи регистров общего назначения, ячеек оперативной памяти, стеков. Производится пересылка или непосредственная загрузка одного или пары регистров.

  • Операции пересылки. Производится пересылка данных из одного регистра в другой.

Пример: СB - содержимое регистра В пересылается в регистр С. Мнемонически это записывается MOV C,B

В случае использования пар регистров HL ячейка оперативной памяти рассматривается как отдельный регистр общего назначения.

Пример: D[(HL)]  DM – пересылка в регистр D содержимого пары регистров HL (M – ячейка оперативной памяти, адресом которой служит содержимое пары регистров HL)

  • Непосредственная загрузка регистра.

Е5D16 MVI E,5D

  • Непосредственная загрузка пары регистров

DE5D4F LXI D, 5D4F

  1. Арифметические и логические операции. Все операции данного класса команд производятся исключительно через аккумулятор. Операции производятся как с данными, хранящимися в регистрах общего назначения, так и с данными, которые следуют в командах. Сложение 2-х байтовых чисел возможно только арифметически.

  • Логическое сложение

+1011 АAD ORA A,D

0111 AA<B2> ORI A,<B2>

1111

Арифметическое сложение

+1011 AA+D ADD A,D

0111 AA+<B2> ADI A,<B2>

10010

  • Сложение по модулю два

X1

X2

Y

0

0

0

1

0

1

0

1

1

1

1

0

AAD XRA A,D

AA<B2> XRI A,<B2>

  • Логическое умножение

A A  B ANA A,B

A А <B2> ANI A, <B2>

AА+D+TC +1011

0111

TC

1

0011

  1. Операции циклического сдвига

Циклические сдвиги возможны исключительно в аккумуляторе, при этом кодовая комбинация сдвигается либо влево, либо вправо

  1. Сдвиг вправо без учета переноса

Мнемонически такая операция обозначается RRC.

Содержимое каждого разряда аккумулятора передается в соседний младший разряд (DiDi+1), содержимое младшего разряда передается в старший разряд (D7D0) и одновременно в триггер переноса (ТСD0).

  1. Сдвиг вправо с учетом переноса.

Мнемонически такая операция обозначается RAR.

Отличие от сдвига без переноса в том, что триггер переноса передает свое содержимое в старший разряд аккумулятора (D7ТС) и принимает выданное из аккумулятора содержимое младшего разряда (ТСD0).

  1. Сдвиг влево без учета переноса.

Мнемонически такая операция обозначается RLC.

Содержимое каждого разряда аккумулятора передается в соседний старший разряд (Di+1Di), содержимое старшего разряда переносится в младший разряд (D0D7) и одновременно в триггер переноса (ТСD7).

  1. Сдвиг влево с учетом переноса.

Мнемонически такая операция обозначается RАL.

Отличие от сдвига без переноса состоит в том, что триггер переноса ТС вводится в замкнутый контур, в котором осуществляется сдвиг; триггер переноса передает свое содержимое в младший разряд аккумулятора (D0ТС) и принимает выдвигаемое из аккумулятора содержимое старшего разряда (ТСD7).

  1. Положительное и отрицательное приращение регистра или пары регистров.

Увеличение (уменьшение) содержимого регистра необходимо для организации циклических операций и для обращения к ячейкам оперативной памяти (модификация адреса).

ВВ+1 – положительное приращение регистра. Мнемонически это будет INP B.

СС-1 – уменьшение содержимого регистра С. Мнемонически это будет DCP C.

Возможно положительное или отрицательное приращение содержимого пары регистров:

HLHL+1 - INX H.

BCBC+1 - INX B.

DEDE-1 - DCX D.

  1. Операции условных и безусловных переходов.

Условные переходы позволяют организовать ветвящиеся программы. Условные переходы выполняются по значению признаков, хранящихся в регистре признаков (Всего их 5 – TZ, TS, TC, TP, TV). Каждый из этих признаков может принимать два значения – 0 и 1, – следовательно, всего можно организовать 10 условных переходов. Кроме того, имеется возможность перейти в любую точку программы (Мi) с помощью операции безусловного перехода (команда JMP Мi). Таким образом, имеется 11 команд условных и безусловных переходов, причем команды эти – трехбайтные.

Примеры команд условных переходов:

По признаку TZ: JNZ Mi – если TZ=0;

JZ Mi – если TZ=1;

По признаку TС: JNС Mi – если TС=0;

JС Mi – если TС=1;

По признаку TS: JNS Mi – если TS=0;

JS Mi – если TS=1;

  1. Команды ввода/вывода.

Ввод (вывод) сигналов в (из) микропроцессора осуществляется исключительно через аккумулятор с помощью двухбайтовых команд.

1-ый байт – код операции, 2-ой байт – номер устройства ввода/вывода (УВВ). Т.к. восьмиразрядная кодовая комбинация может содержать 256 состояний, то имеется возможность опрашивать 256 устройств ввода и вывода.

Пример команд ввода/вывода:

Ввод в аккумулятор сигнала с устройства ввода №5:

АУВВ 5 - IN 5.

Вывод сигнала из микропроцессора через устройство вывода №2:

УВ 2  А - OUT 2.

  1. Прочие операции.

В микропроцессоре можно производить еще множество операций, например:

Res – сброс;

HLT – остановка – вызывает прекращение выполнения программы и переход в состояние останова;

Инверсия аккумулятора и другие.