- •Микропроцессоры и микроконтроллеры в измерительной технике методические указания
- •200100.62 «Приборостроение» (профиль «Приборостроение») очной формы обучения
- •Лабораторная работа № 1 изучение восьмиразрядной микроЭвм с использованием эмуляторов “emu-80” и эмулятора кр580.
- •Пространство памяти и ввода-вывода мп кр580вм80а
- •Лабораторные задания
- •Лабораторная работа № 2 Изучение приемов программирования и отладки программ на языке ассемблеРа для восьмиразрядного микропроцессора
- •Задание пятое. С рабочего стола загрузить эмулятор восьмиразрядной эвм кр580. На экране монитора появится главное окно программы (рис. 6):
- •Лабораторная работа № 3 Использование микроЭвм для управления технологическим процессом
- •Система команд микропроцессора кр580ик80а
- •Система команд микропроцессора к 580
- •Упрощённая архитектура микроЭвм с тремя шинами
- •Соответствия клавиш
- •Библиографичекий список
- •Содержание
- •394026 Воронеж, Московский просп., 14
Система команд микропроцессора кр580ик80а
Мнемокод команды |
Описание команды |
Длина команды байт |
Изменяемые флаги |
Число тактов |
INR r |
Увеличение содержимого регистра r на единицу |
1 |
Z, S, P, AC |
5
|
INR М |
Увеличение на единицу содержимого ячейки памяти по адресу, указанному в регистрах Н и L |
1 |
Z, S, P, AC |
10 |
DCR r |
Уменьшение содержимого регистра r на единицу |
1 |
Z, S, P, AC2 |
5 |
DCR М
|
Уменьшение на единицу содержимого ячейки памяти по адресу, указанному в регистрах Н и L |
1
|
Z, S, P, AC2 |
10 |
МОV r1,r2 |
Пересылка данных из регистра r2 в регистр r1 |
1
|
- |
5 |
МОV М, r |
Пересылка данных из регистра r в ячейку памяти по адресу, указанному в регистрах Н и L |
1
|
- |
7
|
МОV г, М
|
Пересылка данных в регистр r из ячейки памяти по адресу, указанному в регистрах Н и L |
1
|
- |
7
|
АDD r
|
Суммирование содержимого регистра r и содержимого аккумулятора |
1
|
Z, S, P, C, AC |
4
|
АDD М
|
Суммирование содержимого ячейки памяти по адресу, указанному в регистрах Н и L, с содержимым аккумулятора |
1
|
Z, S, P, C, AC |
7
|
|
|
|
|
|
Продолжение табл. П.1.1
|
||||
АDС r |
Сложение с учетом переноса содержимого регистра r и содержимого аккумулятора |
1
|
Z, S, P, C, AC |
4
|
АDС М |
Сложение с учетом переноса содержимого ячейки памяти по адресу, указанному в регистрах Н и L, с содержимым аккумулятора |
1
|
Z, S, P, C, AC |
7
|
SUB r |
Вычитание содержимого регистра r из содержимого аккумулятора
|
1 |
Z, S, P, C1, AC2 |
4
|
SUB M |
Вычитание из содержимого аккумулятора содержимого ячейки памяти по адресу, указанному в регистрах Н и L |
1 |
Z, S, P, C1, AC2 |
7
|
SВВ r |
Вычитание с заемом содержимого регистра r из содержимого аккумулятора |
1 |
Z, S, P, C1, AC2 |
4
|
SВВ М |
Вычитание с заемом из содержимого аккумулятора содержимого ячейки памяти по адресу, указанному в регистрах Н и L |
1 |
Z, S, P, C1, AC2 |
7
|
ANA r |
Поразрядное И над содержимым регистра r и аккумулятора |
1 |
Z, S, P, C=0, AC=0 |
4
|
АNА М |
Поразрядное И над содержимым аккумулятора и ячейки памяти по адресу, указанному в регистрах Н и L |
1 |
Z, S, P, C=0, AC=0 |
7
|
|
|
|
|
|
|
Продолжение табл. П.1.1
ХRА r |
Поразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ над содержимым регистра r и аккумулятора |
1 |
Z, S, P, C=0, AC=0 |
4
|
ХRА М |
Поразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ над содержимым аккумулятора и ячейки памяти по адресу, указанному в регистрах Н и L |
1 |
Z, S, P, C=0, AC=0 |
7
|
ОRА r |
Поразрядное ИЛИ над содержимым регистра r и аккумулятора |
1 |
Z, S, P, C=0, AC=0 |
4
|
ORА М |
Поразрядное ИЛИ над содержимым аккумулятора и ячейки памяти по адресу, указанному в регистрах Н и L |
1 |
Z, S, P, C=0, AC=0 |
7
|
СМР r |
Сравнение содержимого регистра r и аккумулятора Уменьшение на единицу содержимого пары |
1 |
(Z, S, P, C, AC)3 |
4 |
СМР М |
Сравнение содержимого аккумулятора и ячейки памяти по адресу, указанному в регистрах Н и L |
1 |
(Z, S, P, C, AC)3 |
7 |
INX rp |
Увеличение на единицу содержимого пары регистров rр (В, D, Н, SР) |
1 |
- |
5 |
DCX rp |
Уменьшение на единицу содержимого пары регистров rр (В, D, Н, SР) |
1 |
- |
5 |
Продолжение табл. П.1.1
DАD rр |
Сложение содержимого пары регистров rр (В, D, Н, SР) с содержимым пары регистров Н и L и хранение результата в Н и L |
1 |
- |
10 |
РОР rр |
Выдача данных из стека в пару регистров rр (В, D, Н) или в аккумулятор и регистр признаков PSW |
1 |
(Z, S, P, C, AC)6 |
10 |
РUSН rp |
3анесение в стек содержимого пары регистров rр (В, D, Н) или содержимого аккумулятора и регистра признаков PSW |
1 |
- |
11 |
SТАХ rр |
Запись содержимого аккумулятора в ячейку памяти, косвенно адресуемую парой регистров rр (В, D) |
1 |
- |
7 |
LDАХ rр |
Запись в аккумулятор содержимого ячейки памяти, косвенно адресуемой парой регистров rр (В, D) |
1 |
- |
7 |
RNZ |
Возврат из подпрограммы при отсутствии нуля (флаг нуля в состоянии 0) |
1 |
- |
5/11 |
RZ |
Возврат из подпрограммы при наличии нуля (флаг нуля в состоянии 1) |
1 |
- |
5/11 |
RZС
|
Возврат из подпрограммы при отсутствии переноса (флаг переноса в состоянии 0) |
1 |
- |
5/11 |
|
|
|
|
|
Продолжение табл. П.1.1
RC |
Возврат из подпрограммы при наличии переноса (флаг переноса в состоянии 1) |
1 |
- |
5/11 |
RРО |
Возврат из подпрограммы при отсутствии четности (флаг четности в состоянии 0) |
1
|
-
|
5/11
|
RРЕ |
Возврат из подпрограммы при наличии четности (флаг четности в состоянии 1) |
1
|
-
|
5/11
|
RР |
Возврат из подпрограммы при положительном результате (флаг знака в состоянии 0) |
1
|
- |
5/11
|
RМ
|
Возврат из подпрограммы при отрицательном результате (флаг знака в состоянии 1) |
1
|
- |
5/11
|
RЕТ
|
Безусловный возврат из подпрограммы |
1
|
-
|
5/11
|
RLС
|
Циклический сдвиг содержимого аккумулятора влево |
1
|
C4
|
4
|
RRС
|
Циклический сдвиг содержимого аккумулятора вправо |
1
|
C4
|
4
|
|
|
|
|
|
Продолжение табл. П.1.1
RAL |
Циклический сдвиг содержимого аккумулятора влево, включая флаг переноса |
1
|
C4
|
4
|
RAR |
Циклический сдвиг содержимого аккумулятора вправо, включая флаг переноса |
1
|
C4
|
4
|
ХСНG
|
Обмен данными между парами регистров Н, L и D, Е |
1
|
-
|
4
|
ХТНL |
Обмен данными между двумя верхними ячейками стека и парой регистров Н, L (сначала самая верхняя обменивается с L, затем следующая с Н) |
1
|
-
|
18
|
SРНL
|
Передача в указатель стека содержимого регистров Н и L |
1
|
-
|
5
|
PCHL |
Передача в счетчик команд содержимого пары регистров Н и L с последующим выполнением программы с адреса, равного новому содержимому счетчика команд (по существу команда перехода) |
1
|
- |
5 |
HLT |
Останов программы |
1 |
- |
7 |
NOP |
Отсутствие операции |
1 |
- |
4 |
DI |
Запрет на прерывание программы |
1 |
- |
4 |
|
|
|
|
|
Продолжение табл. П.1.1
EI |
Разрешение прервать программу |
1 |
- |
4 |
DАА
|
Перевод двоичного представления содержимого аккумулятора в двоично-десятичный код |
1 |
- |
4 |
СМА
|
Поразрядное инвертирование содержимого аккумулятора |
1 |
- |
4 |
STC |
Установка флага переноса С в единицу |
1 |
С = 1 |
4 |
СМС |
Инвертирование значения флага переноса |
|
С= |
|
RST A |
Повторный запуск программы с адреса 8А10 = (0А08) |
1 |
- |
11 |
АDI (В2)
|
Сложение содержимого байта В2 с содержимым аккумулятора |
2
|
Z, S, P, C, AC |
7 |
АСI (В2)
|
Сложение с учетом переноса содержимого байта В2 с содержимым аккумулятора |
2
|
Z, S, P, C, AC |
7 |
SUI (В2) |
Вычитание содержимого байта В2 из содержимого аккумулятора |
2
|
Z, S, P, C1, AC2 |
7 |
SBI (В2 ) |
Вычитание с заемом содержимого байта В2 из содержимого аккумулятора |
2
|
Z, S, P, C1, AC2 |
7 |
АNI (В2) |
Поразрядное И над содержимым байта В2 и содержимым аккумулятора |
2
|
Z, S, P, C=0, AC=0 |
7 |
Продолжение табл. П.1.1
ХRI (В2)
|
Поразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ над содержимым байта В2 и содержимым аккумулятора |
2
|
Z, S, P, C=0, AC=0 |
7 |
ORI (B2) |
Поразрядное ИЛИ над содержимым байта В2 и содержимым аккумулятора |
2 |
Z, S, P, C=0, AC=0 |
7 |
CPI (B2) |
Сравнение содержимого байта В2 с содержимым аккумулятора |
2 |
(Z, S, P, C, AC)3 |
7 |
IN (B2) |
Ввод данных в аккумулятор из порта ввода, определяемого адресом в байте В2 |
2 |
- |
10 |
OUT (B2) |
Вывод данных из аккумулятора в порт вывода, определяемый адресом в байте В2 |
2 |
- |
10 |
MVI r (B2) |
Занесение содержимого байта В2 в регистр r |
2 |
- |
7 |
MVI M (B2) |
Запись содержимого байта В2 в ячейку памяти по адресу, указанному в регистрах Н и L |
2 |
- |
7 |
JNZ (B2) (B3) |
Переход в программе к выполнению команды по адресу в В2, ВЗ при отсутствии нуля (флаг нуля в состоянии 0) |
3 |
- |
10 |
Продолжение табл. П.1.1
JZ (B2) (B3) |
Переход в программе к выполнению команды по адресу в В2, ВЗ при наличии нуля (флаг нуля в состоянии 1) |
3 |
- |
10 |
JNC (B2) (B3) |
Переход в программе к выполнению команды по адресу в В2, ВЗ при отсутствии переноса (флаг переноса в состоянии 0) |
3 |
- |
10 |
JC (B2) (B3) |
Переход в программе к выполнению команды по адресу в В2, ВЗ при наличии переноса (флаг переноса в состоянии 1) |
3 |
- |
10 |
JPO (B2) (B3) |
Переход в программе к выполнению команды 3 по адресу в В2, ВЗ при наличии нечетности(флаг четности в состоянии 0) |
3 |
- |
10 |
JPE (B2) (B3) |
Переход в программе к выполнению команды 3 по адресу в В2, ВЗ при наличии четности (флаг четности в состоянии 1) |
3 |
- |
10 |
0000000JP (B2) (B3) |
Переход в программе к выполнению команды 3 по адресу в В2, ВЗ при положительном результате (флаг знака в состоянии 0) |
3 |
- |
10 |
Продолжение табл. П.1.1
JM (B2) (B3) |
Переход в программе к выполнению команды 2 по адресу в В2, ВЗ при отрицательном результате (флаг знака в состоянии 1) |
3 |
- |
10 |
JMP (B2) (B3) |
Безусловный переход к команде по адресу в В2, ВЗ |
3 |
- |
10 |
CNZ (B2) (B3) |
Вызов подпрограммы при отсутствии нуля -флаг нуля в состоянии 0 |
3 |
- |
11/175 |
CZ (B2) (B3) |
Вызов подпрограммы при наличии нуля (флаг нуля в состоянии 1) |
3 |
- |
11/175 |
CNC (B2) (B3) |
Вызов подпрограммы при отсутствии переноса (флаг переноса в состоянии 0) |
3 |
- |
11/175 |
CC (B2) (B3) |
Вызов подпрограммы при наличии переноса (флаг переноса в состоянии 1) |
3 |
- |
11/175 |
CPO (B2) (B3) |
Вызов подпрограммы при наличии нечетности (флаг четности в состоянии 0) |
3 |
- |
11/175 |
CPE (B2) (B3) |
Вызов подпрограммы при наличии четности (флаг четности в состоянии 1) |
3 |
- |
11/175 |
CP (B2) (B3) |
Вызов подпрограммы при наличии положительного результата (флаг знака в состоянии 0) |
3 |
- |
11/175 |
CM (B2) (B3) |
Вызов подпрограммы при наличии отрицательного результата (флаг знака в состоянии 1) |
3 |
- |
11/175 |
САLL (В2) (ВЗ) |
Вызов подпрограммы из памяти по адресу, указанному в байтах В2, ВЗ |
3 |
- |
17
|
Окончание табл. П.1.1
|
||||
LХI rр (В2) (ВЗ) |
Занесение содержимого двух байтов В2, ВЗ в пару регистров rр (В, D, Н, SР) |
3 |
- |
10
|
SТА (В2) (ВЗ)
|
Запись содержимого аккумулятора в ячейку памяти по адресу в В2, ВЗ |
3 |
- |
13
|
LDА (В2) (ВЗ)
|
Запись в аккумулятор содержимого ячейки памяти по адресу в В2, ВЗ |
3 |
- |
13
|
SHLD (В2) (ВЗ) |
Занесение содержимого регистров Н и L в память: содержимое L пересылается в ячейку по адресу в В2, ВЗ; содержимое регистра Н -в ячейку, адрес которой на единицу больше |
3 |
- |
16
|
LНLD (В2) (ВЗ)
|
Загрузка в регистры Н и L содержимого ячеек памяти: в L пересылаются данные из ячейки памяти по адресу в В2, ВЗ; в Н - из ячейки, адрес которой на единицу больше |
3 |
- |
16
|
Примечания:
1. Флаг устанавливается при наличии заема в старший разряд, в противном случае сбрасывается.
2. Флаг устанавливается при наличии заема из старших четырех разрядов в младшие, в противном случае сбрасывается.
3. Флаг нуля Z устанавливается, если содержимое регистра или байта данных совпадает с содержимым аккумулятора; флаги знака и переноса S и С устанавливаются, если содержимое регистра или байта данных больше содержимого аккумулятора; флаг вспомогательного переноса АС устанавливается, если содержимое младших четырех разрядов регистра или байта данных больше содержимого соответствующих
разрядов аккумулятора; флаг четности Р устанавливается, если байт разности между содержимым аккумулятора и содержимым регистра или байта данных содержит четное число единиц.
4. Состояние флага равно значению выдвигаемого из аккумулятора двоичного разряда.
5. Большее значение (за косой чертой) указывает на число тактов при выполнении условий, меньшее - при невыполнении.
6. По команде РОР РSW флаги устанавливаются в соответствии со значением разрядов слова, хранящегося в стеке; при выдаче данных из стека в другие регистры флаги не меняются.