Археология Архитектура Астрономия Аудит Биология Ботаника Бухгалтерский учёт Войное дело Генетика География Геология Дизайн Искусство История Кино Кулинария Культура Литература Математика Медицина Металлургия Мифология Музыка Психология Религия Спорт Строительство Техника Транспорт Туризм Усадьба Физика Фотография Химия Экология Электричество Электроника Энергетика
Система и формат команд МП К580.
Выполнение команды в МПС состоит из фаз: выборки адресованной команда из памяти и ее исполнение. Вторая фаза в свою очередь делится еще на две части: выборки операндов из памяти и выполнение операции над операндами.
Длительность командно цикла индивидуальна для каждой команды и может быть выражена количеством тактов или периодов генератора МП. Зная частоту генератора, можно определить реальное время выполнение как команды в отдельности, так и каких-либо фрагментов программ.
В МП К580 используется 4 типа адресации к памяти или регистрам:
· прямая адресация, при которой код команды во втором и третьем байте содержит прямое указание адреса хранения операнда.
· регистровая адресация код команды неявно содержит информацию о регистре (регистрах), в котором записан операнд.
· косвенная адресация – в коде команды указывается пара регистров блока регистров общего назначения путем указания адреса одного из регистров этой пары, содержание которой служит адресом, по которой в оперативной памяти находятся операнды;
· непосредственная – операнды задаются непосредственно в команде в след за байтом кода операция во 2-ом или во 2-ом и 3-ем байтах.
Формат команды МП К580 может быть представлен тремя типами:
1. Однобайтовые команды
Код операции
Регистр приемник/
первый операнд
Регистр источник/ второй операнд
7 6
5 4 3
2 1 0
2. Двухбайтовые команды
Код операции (В1)
Непосредственные данные или порт ввода/вывода (В2)
3. Трехбайтовые команды
Код операции (В1)
Младший байт адреса (В2)
Старший байт адреса (В3)
Набор команд МП КР 580 содержит 78 базовых команд, и в целом включает 244 различные их модификации. Все команды подразделяются на 5 функционально специализированных групп:
· Команды передачи данных:
· Команды арифметических операций;
· Команды логических операций;
· Команды передачи управления;
· Команды стека, ввода вывода, управления.
Таблица 2.1
Условные обозначения в наборе команд
R1, R2, R
Один из регистров A, B, C, D, T, H, L
M
Ячейка памяти, адресуемая содержимым HL-пары регистров
RR
Одна из регистровых пар BC, DE, HL или указатель стека SP
RRH, RRL
Старший и младший регистры регистровой пары RR
PCH, PCL
Старший и младший регистры программного счетчика PC
B2, B3
Второй и третий байты команды
( Х )
Содержимое элемента или адреса Х
(( Х ))
Содержимое элемента, адресуемого по содержимому элемента Х
Оператор присваивания
Таблица 2.2
Набор команд МП К580
Формат
Время тактов
Код
Мнемокод
Наименование команды
Операция
Признаки
S
Z
AC
P
CY
Команды передачи данных
*
MOV R1,R2
Пересылка данных из регистра в регистр
(R1)←(R2)
-
-
-
-
-
*
MOV R,M
Пересылка данных из памяти в регистр
(R)←((H,L))
-
-
-
-
-
*
MOV M,R
Пересылка данных из регистра в память
((H,L))← (R)
-
-
-
-
-
*
MVI R,B2
Пересылка непосредственных данных в регистр
(R)←В2
-
-
-
-
-
*
MVI М,B2
Пересылка непосредственных данных в память
((H,L))←В2
-
-
-
-
-
*
LXI RR, B2B3
Непосредственная загрузка регистровой пары
(RRH) ←B3
(RRL) ←В2
-
-
-
-
-
3A
LDA B2B3
Прямая загрузка
А-регистра
(А)←((В3,В2))
-
-
-
-
-
*
LDAX RR
Косвенная загрузка
А-регистра
(А)←((RR))
-
-
-
-
-
*
STAX RR
Косвенное запоминание
А-регистра
((RR))← (А)
-
-
-
-
-
2А
LHID В2ВЗ
Прямая нагрузка H-пары регистров
(L) ← ((B2B3)) (H)←((B2B3)+1)
-
-
-
-
-
STA В2В3
Прямое запоминание содержимого А-регистра
((B2B3)) ←A
-
-
-
-
-
SHLDY В2В3
Прямое запоминание содержимого Н-пары регистров
((B2B3)) ← (L)
((B2B3+1))←(H)
-
-
-
-
-
EВ
XCHG
0бмен между Н- и D-парами регистров
(H)↔(D)
(L) ↔ (E)
-
-
-
-
-
Команды арифметических операций
4!
*
ADDR
Сложение содержимого А-регистра
(A)← (A) + (R)
+
+
+
+
+
ADDM
Сложение содержимых ячейки памяти и А-регистра
(A) ← (A) +
((H,L))
+
+
+
+
+
С6
ADI B2
Сложение непосредственных данных и содержимого А-регистра
(A) ← (A)-(B2)
+
+
+
+
+
*
ADC R
Сложение содержимых регистра и А-регистра с переносом
(А) ← (А) + (R) + (CY)
+
+
+
+
+
8E
ADC M
Сложение содержимых ячейки памяти и А-регистра с переносом
А) ← (А)+ ((H,L)) + (CY)
+
+
+
+
+
CE
ACI B2
Сложение непосредственных данных н А-регистра с переносом
А) - (А) + (B2) + (CY)
+
+
+
+
+
*
INR R
Инкрементирование содержимого регистра
(R)← (R)+1
+
+
+
+
-
INR M
Инкрементирование содержимого ячейки памяти
((H,L))← ((H,L))+l
+
+
+
+
-
*
INX RR
Инкрементирование содержимого регистровой пары
(RR) ← (RR) + 1
-
-
-
-
-
*
DCR R
Декрементирование содержимого регистра
(R) ← (R)-1
+
+
+
+
-
DCR M
Декрементирование содержимого ячейки памяти
((H,L)) ← ((H,L))-1
+
+
+
+
-
*
DCX RR
Декрементирование содержимого регистровой пары
(RR)← (RR)-1
-
-
-
-
-
*
SUB R
Вычитание содержимого регистра из содержимого А-регистра
(A) ← (A) - (R)
+
+
+
+
+
SUB M
Вычитание содержимого ячейки памяти из содержимого А-регистра
(A) ← (A)-((H,L))
+
+
+
+
+
D6
SUI B2
Вычитание непосредственных данных из содержимого А-регистра
(A) ← (A)-(B2)
+
+
+
+
+
*
SBB R
Вычитание содержимого регистра из содержимого А-регистра с заемом
(A)← (A)-(R)-(CY)
+
+
+
+
+
9E
SBB M
Вычитание ячейки памяти из содержимого А-регистра с заемом
(А)← (А) -((H,L))-(CY)
+
+
+
+
+
DE
SBI B2
Вычитание непосредственных данных ис содержимого А-регистра с заемом
(А)← (А)-(B2)-(CY)
+
+
+
+
+
I
*
DAD RR
Сложение содержимых регистровой пары и Н-пары регистров
(H,L)← (H,L) + (RR)
-
-
-
-
+
Команды логических операций
*
ANA R
Поразрядное И над содержимым регистра и А- регистра
(A) ← (A)۸ (R)
+
+
+
A6
ANA M
Поразрядное И над содержимым ячейки памяти и А-регистра
(A) ← (A) ۸ ((H,L))
+
+
+
E6
ANI B2
Поразрядное И над непосредственными данными и содержимым А-регистра
(A) ← (A) ۸ (B2)
+
+
+
*
CMP R
'Сравнение содержимых регистра и А-регистра
Если (А) -(RM)=0,то (CY) = 0, (Z)=l. Если (A) -(RM)>0, то (CY) = 0,(Z) = 0, Если (А) -(RM)<0, то (CY)=1,(Z)=0
+
+
+
+
+
BE
CMP M
Сравнение содержимых ячейки памяти и А-регистра
+
+
+
+
+
0Е
CPI B2
Сравнение непосредственных данных с содержимым А-регистра
+
+
+
+
+
2F
CMA
Дополнение содержимого А-регистра
(A) ← (A)
-
-
-
-
-
*
XRA R
Поразрядное Исключающее ИЛИ над содержимым регистра и А-регистра
(A) ← (A) ۷ R
+
+
+
AE
XRA M
Поразрядное Исключающее ИЛИ над содержимым ячейки памяти и А-регистра
(A)← (A) ۷
((H,L))>
+
+
+
ЕЕ
XR1 B2
Поразрядное Исключающее ИЛИ над содержимым
А-регистра и непосредственными данными
(A)← (A) ۷ (B2)
+
+
+
*
ORA R
Поразрядное ИЛИ над содержимым регистра и А-регистра
(A)← (A) ۷ R
+
+
+
B6
ORA M
Поразрядное ИЛИ над содержимым ячейки памяти и А-регистра
(A)← (A) ۷ ((Н,L))
+
+
+
F6
ORI B2
Поразрядное ИЛИ
над непосредственными данными и содержимым А-регистра
(A) ← (A) ۷ (B2)
+
+
+
RLC
Циклический
сдвиг влево содержимого А~регистра
(Аi-1 ) ← (Аi ) (Ao) ← (A7 ) (СY) ← (A7 )
-
-
-
-
+
RAL
Циклический, сдвиг влево содержимого А-регистра через перенос
(Аi-1 ) ← (Аi ) (Ao) ← (CY) (СY) ← (A7 )
-
-
-
-
+
0F
RRC
Циклический сдвиг вправо содержимого
А-регистра
(Ai )← (Ai +1 )
(A0 ) ← (A7 )
(CY)← (A0 )
-
-
-
-
+
STC
Установка в 1 признака
переноса
(CY) ← 1
-
-
-
-
Команды передача управления
C3
JMP В2BЗ
Безусловный переход
(PC) ← (B2,B3)
-
-
-
-
-
DA
JC B2B3
Переход, если перенос
Если условие верно, то
(PC) ← (B2,B3)
иначе
(PC) ←(PC)+3
-
-
-
-
-
D2
JNC B2B3
Переход, если не перенос
-
-
-
-
-
CA
JZ B2B3
Переход, если нуль
-
-
-
-
C2
JNZ B2B3
Переход, если не нуль
F2
JP B2B3
Переход, если плюс
FA
JM B2B3
Переход, если минус
EA
JPE B2B3
Переход, если паритет четный
E2
JPO B2B3
Переход, если паритет не четный
CD
CALL B2B3
Безусловный вызов подпрограммы
((SP)-1)←(PCH),
((SP)-2)←(PCL),
(SP) ← (SP)-2
(PC) ←(B2B3)
11/17
DC
CC B2B3
Вызов подпрограммы, если перенос
Если условие верно, то
((SP)-1)←(PCH),
((SP)-2)←(PCL),
(SP) ← (SP)-2
(PC) ←(B2B3),
иначе
(PC) ←(PC)+3
11/17
D4
CNC B2B3
Вызов подпрограммы, если не перенос
11/17
CC
CZ B2B3
Вызов подпрограммы, если нуль
11/17
C4
CNZ B2B3
Вызов подпрограммы, если не нуль
11/17
F4
CP B2B3
Вызов подпрограммы, если плюс
11/17
FC
CM B2B3
Вызов подпрограммы, если минус
11/17
EC
CPE B2B3
Вызов подпрограммы, если паритет четный
11/17
E4
CPO B2B3
Вызов подпрограммы, если паритет не четный
C9
RET
Возврат из подпрограммы
(PCL) ←((SP)),
(PCH)←((SP)+1)
(SP) ←(SP)+2
5/11
D8
RC
Возврат из подпрограммы, если перенос
Если условие верно, то
(PCL) ← ((SP)), (РСН) ← ((SP)+1),
(SP) ← (SP) + 2, иначе (PC) +- (PC) + 1
5/11
D0
RNC
Возврат из подпрограммы если не перенос
5/11
C8
RZ
Возврат, если 0
-
-
-
-
-
5/11
C0
RNZ
Возврат, если не 0
-
-
-
-
-
5/11
F0
RP
Возврат, если плюс
-
-
-
-
-
5/11
F8
RM
Возврат, если минус
-
-
-
-
-
5/11
E8
RPF
Возврат, если четно
-
-
-
-
-
5/11
E0
RPO
Возврат, если не четно
-
-
-
-
-
C7
RSTO
Рестарт по 0-му уровню
((SP)-1)← (PCH),
((SP)-2)← (PСL).
(SP) ← (SP) – 2, (PC) ← 8*N
-
-
-
-
-
CF
RST1
Рестарт по 1-му уровню
-
-
-
-
-
D7
RST2
Рестарт по 2-му уровню
-
-
-
-
-
DF
RST3
Рестарт по 3-му уровню
-
-
-
-
-
E7
RST4
Рестарт по 4-му уровню
-
-
-
-
-
EA
RST5
Рестарт по 5-му уровню
-
-
-
-
-
F7
RST6
Рестарт по 6-му уровню
-
-
-
-
-
FF
RST7
Рестарт по 7-му уровню
-
-
-
-
-
E9
PCHL
Запись содержимого Н-нары регистров
(PCH) ← (H) (PCL) ← (L)
-
-
-
-
-
Команды стека, ввода-вывода и управления
*
PUSH RR
Запись в стек содержимого регистровой пары
((SP)-1← (RRH), ((SP)-2) ← (RRL), (SP)← (SP)-2
-
-
-
-
-
F5
PUSH PSW
Запись в стек слова состояния процессора
((SP)-1)← (A), (SP)← (SP)-2, ((SP)-2)← F
-
-
-
-
-
*
POPRR
Чтение содержимого регистровой пары из стека
(RRL)← ((SP)) (RRH)← -((SP)+1), (SP) ← (SP) + 2
-
-
-
-
-
Fl
POP PSW
Чтение из стека слова состояния процессора
(F) ← ((SP)), (A) ← ((SP)+1), (SP) ← (SP) + 2
-
-
-
-
-
E3
XTHL
Обмен между вершиной стека и Н-парой регистров
(L)← ((SP)),
(H)← ((SP)+1)
(SP) ← (H,L)
-
-
-
-
-
F9
SPHL
Запись содержимого Н пары регистров в указатель стека
(SP) ← (H,L)
-
-
-
-
-
DB
IN B2
Ввод данных
(A) ← ((B2))
-
-
-
-
-
D3
OUT B2
Вывод данных
((B2)) ← (A)
-
-
-
-
-
FB
E1
Разрешение прерывания
(INTE) ← 1
-
-
-
-
-
F3
DI
Запрет прерывания
(INTE) ← 0
-
-
-
-
-
HLT
Останов
(PC) ← (PC) +1
-
-
-
-
-
NOP
Пустая операция
(PC)←(РС) + 1
-
-
-
-
-
Таблица 2.3
Коды команд MOV RM1,RM2
RMl
RM2
В
С
D
E
H
L
M
A
В
401
С
49 1
4A
4B
4C
4D
4E
4F
D
521
E
5A
5B1
5C
5D
5E
5F
H
641
L
6A
6B
6C
6D1
6E
6F
M
762
A
7A
7B
7C
7D
7E
7F1
Таблица 2.4
Коды команд с регистрами
Команда
RM
В
С
D
E
H
L
M
A
ADDRM
ADCRM
8A
8B
8C
8D
8E
8F
SUBRM
SBBRM
9A
9B
9C
9D
9E
9F
ANARM
А0
Al
A2
A3
A4
A5
A6
A7
XRARM
A8
A9
AA
AB
AC
AD
AE
AF
ORARM
B0
B1
B2
B3
B4
B5
B6
B7
CMPRM
B8
B9
BA
BB
ВС
BD
BE
BF
INRRM
0С
1C
2C
3C
DCRRM
0D
1D
2D
3D
MVIRM
0E
1E
2E
3E
Таблица 2.5
Коды команд с регистровыми парами
Команда
RB
B
D
H
P
LXI RR
LDAX RR
0A
1A
-
-
STAXRR
-
-
INXRR
DCXRR
0B
1B
2B
3B
DADRR
PUSH RR
C5
D5
E5
-
POP
C1
D1
E1
-
Поиск по сайту: