
- •16. Способы определения переполнения при арифметических операциях.
- •Переполнение
- •18. Три концепции реализации мпс.
- •19. Микропроцессор 8080а: структурная схема, назначение выводов.
- •20. Диаграмма переходов для машинного цикла мп 8080а. Формирование сис-темных управляющих сигналов.
- •21. Система команд мп 8080а: группы команд и их характеристика:
- •22. Принципы организации мпс: модульность, магистральный способ обмена информацией, микропрограммное управление.
- •23. Системная шина мпс. Сравнительная характеристика мпс с общей шиной и с изолированной шиной.
- •24. Интерфейс микропроцессора с системной шиной.
21. Система команд мп 8080а: группы команд и их характеристика:
• Команды передачи данных.
• Команды обработки данных: арифметические и логические команды.
• Команды передачи управления: команды безусловного и условного переходов.
• Команды передачи управления: команды вызова и возврата.
• Команды управления стеком.
• Команды ввода-вывода.
Система команд МП Intel 8080A.
Все множество команд данного МП можно подразделить на следующие 5 групп:
Команды пересылки данных, обеспечивающие пересылку данных между регистрами или памятью и регистрами. Команды данной группы не формируют признаков результатов операций.
Арифметические команды, обеспечивающие выполнение операций сложения и вычитания, инкрементирования и декрементирования данных в регистрах или ячейках памяти. Один операнд для бинарных операций хранится в аккумуляторе А, другой - в регистре или ячейке памяти, а результат помещается в аккумулятор. Такие операции, как умножение и деление, выполняются программным путём.
Логические команды реализуют операции логического сложения и умножения, исключающего ИЛИ, инвертирования, циклических сдвигов и некоторых других. Исходные операнды хранятся в регистрах или ячейках памяти, а результат помещается в аккумулятор.
Команд передачи управления, в число которых входят команды безусловной и условной передачи управления, а также команды вызова и возврата. Данные команды не формируют признаков результатов операций.
Команды ввода и вывода информации, обращения к стековой памяти. Кроме того, в эту группу входит ряд команды управления работой МП.
Система команд микропроцессора КР580 приведена в таблице 1, в которой использованы следующие условные обозначения:
r, r1, r2 - регистр В, С, D, E, Н, L, аккумулятор А;
M - ячейка памяти, адресуемая регистровой парой H;
data - 8-разрядные данные;
data 16 - 16-разрядные данные;
addr - 16-разрядный адрес памяти; (...) - содержимое ячейки памяти или регистра;
(SP) - содержимое указателя стека;
((SP)) - содержимое ячейки стека;
port - 8-разрядный адрес порта ввода или вывода;
гр - регистровая пара В (B, С); D (D, Е); Н (H, L) или указатель стека SP;
rh – старший (первый) регистр пары; rl – младший (второй ) регистр пары;
PSW - слово состояния программы : содержимое аккумулятора (A) и флажкового регистра (F);
CCC - 3-разрядный код условия, используемого в командах передачи управления:
Условие |
NZ |
Z |
NC |
C |
PO |
PE |
P |
M |
не ноль |
ноль |
нет переноса |
перенос |
нечёт |
чёт |
плюс |
минус |
|
CCC |
000 |
001 |
010 |
011 |
100 |
101 |
110 |
111 |
n - номер команды повторного старта RST, n=0-7;
Дл. – длина команды, байт;
МЦ – число машинных циклов;
Т - количество тактов.
Таблица 1
Команды пересылки данных |
|||||||||
Мнемоника |
Описание команды |
Дл. |
МЦ |
Т |
Флажки |
||||
Z |
S |
P |
C |
AC |
|||||
mov r1, r2 |
(r1) ← (r2) |
1 |
1 |
5 |
- |
- |
- |
- |
- |
mov r, M |
(r) ← ((H)(L)) |
1 |
2 |
7 |
- |
- |
- |
- |
- |
mov M, r |
((H)(L)) ← (r) |
1 |
2 |
7 |
- |
- |
- |
- |
- |
mvi r, data |
(r) (byte 2) |
2 |
2 |
7 |
- |
- |
- |
- |
- |
mvi M, data |
((H)(L)) ← (byte 2) |
2 |
3 |
10 |
- |
- |
- |
- |
- |
lxi rp, data 16 |
(rh) ← (byte 3) (rl) ← (byte 2) |
3 |
3 |
10 |
- |
- |
- |
- |
- |
sta addr |
((byte3)(byte 2)) ← (A) |
3 |
4 |
13 |
- |
- |
- |
- |
- |
lda addr |
(A) ← ((byte3)(byte 2)) |
3 |
4 |
13 |
- |
- |
- |
- |
- |
lhld addr |
(L) ← ((byte3)(byte 2)) (H) ← ((byte3)(byte 2)+1) |
3 |
5 |
16 |
- |
- |
- |
- |
- |
xchg |
(H) ↔ (D) (L) ↔ (E) |
1 |
1 |
4 |
- |
- |
- |
- |
- |
shld addr |
((byte3)(byte 2)) ← (L) ((byte3)(byte 2)+1) ← (H) |
3 |
5 |
16 |
- |
- |
- |
- |
- |
ldax rp |
(A) ← ((rp)) |
1 |
2 |
7 |
- |
- |
- |
- |
- |
stax rp |
((rp)) ← (A) |
1 |
2 |
7 |
- |
- |
- |
- |
- |
Арифметические команды |
|||||||||
Мнемоника |
Описание команды |
Дл. |
МЦ |
Т |
Флажки |
||||
Z |
S |
P |
C |
AC |
|||||
add r |
(A) ← (A)+(r) |
1 |
1 |
4 |
|
|
|
|
|
add M |
(A) ← (A)+((H)(L)) |
1 |
2 |
7 |
|
|
|
|
|
adi data |
(A) ← (A)+(byte 2) |
1 |
2 |
7 |
|
|
|
|
|
adc r |
(A) ← (A)+(r)+(C) |
1 |
1 |
4 |
+ |
+ |
+ |
+ |
+ |
adc M |
(A) ← (A)+((H)(L)+(C)) |
1 |
2 |
7 |
+ |
+ |
+ |
+ |
+ |
aci data |
(A) ← (A)+(byte 2)+(C) |
1 |
2 |
7 |
+ |
+ |
+ |
+ |
+ |
sub r |
A) ← (A)-(r) |
1 |
1 |
4 |
+ |
+ |
+ |
+ |
+ |
sub M |
(A) ← (A)-((H)(L)) |
1 |
2 |
7 |
+ |
+ |
+ |
+ |
+ |
sui data |
(A) ← (A)-(byte 2) |
1 |
2 |
7 |
+ |
+ |
+ |
+ |
+ |
sbb r |
(A) ← (A)-(r)-(C) |
1 |
1 |
4 |
+ |
+ |
+ |
+ |
+ |
sbb M |
(A) ← (A)-((H)(L))-(C)) |
1 |
2 |
7 |
+ |
+ |
+ |
+ |
+ |
sbi data |
(A) ← (A)-(byte 2)-(C) |
1 |
2 |
7 |
+ |
+ |
+ |
+ |
+ |
daa |
Десятичная коррекция |
1 |
1 |
4 |
+ |
+ |
+ |
+ |
+ |
inr r |
(r) ← (r)+1 |
1 |
1 |
5 |
+ |
+ |
+ |
- |
+ |
inr M |
((H)(L)) ← ((H)(L))+1 |
1 |
3 |
10 |
+ |
+ |
+ |
- |
+ |
dcr r |
(r) ← (r)-1 |
1 |
1 |
5 |
+ |
+ |
+ |
- |
+ |
dcr M |
((H)(L)) ← ((H)(L))-1 |
1 |
3 |
10 |
+ |
+ |
+ |
- |
+ |
inx rp |
(rh)(rl) ← ((rh(rl)+1 |
1 |
1 |
5 |
- |
- |
- |
- |
- |
dcx rp |
(rh)(rl) ← (rh)(rl)-1 |
1 |
1 |
5 |
- |
- |
- |
- |
- |
dad rp |
(H)(L) ← (H)(L)+ (rh)(rl) |
1 |
3 |
10 |
- |
- |
- |
+ |
- |
Логические
команды
|
|||||||||
Мнемоника |
Описание команды |
Дл. |
МЦ |
Т |
Флажки |
||||
Z |
S |
P |
C |
AC |
|||||
ana r |
(A) ← (A)Λ(r) |
1 |
1 |
4 |
+ |
+ |
+ |
0 |
+ |
ana M |
(A) ← (A)Λ((H)(L)) |
1 |
2 |
7 |
+ |
+ |
+ |
0 |
+ |
ani data |
(A) ← (A)Λ(byte 2) |
1 |
2 |
7 |
+ |
+ |
+ |
0 |
+ |
ora r |
(A) ← (A)V(r) |
1 |
1 |
4 |
+ |
+ |
+ |
0 |
+ |
ora M |
(A) ← (A)V((H)(L)) |
1 |
2 |
7 |
+ |
+ |
+ |
0 |
+ |
ori data |
(A) ← (A)V(byte 2) |
1 |
2 |
7 |
+ |
+ |
+ |
0 |
+ |
xra r |
(A)
← (A) |
1 |
1 |
4 |
+ |
+ |
+ |
0 |
+ |
xra M |
(A) ← (A) ((H)(L)) |
1 |
2 |
7 |
+ |
+ |
+ |
0 |
+ |
xri data |
(A) ← (A) (byte 2) |
1 |
2 |
7 |
+ |
+ |
+ |
0 |
+ |
cmp r |
(A)-(r) |
1 |
1 |
4 |
+ |
+ |
+ |
+ |
+ |
cmp M |
(A)-((H)(L)) |
1 |
2 |
7 |
+ |
+ |
+ |
+ |
+ |
cpi data |
(A)-(byte 2) |
2 |
2 |
7 |
+ |
+ |
+ |
+ |
+ |
rlc |
(An+1) ← (An), (A0) ← (A7), (C) ← (A7) |
1 |
1 |
4 |
- |
- |
- |
+ |
- |
rrc |
(An) ← (An+1), (A7) ← (A0), (C) ← (A0) |
1 |
1 |
4 |
- |
- |
- |
+ |
- |
ral |
(An+1) ← (An), (C) ← (A7), (A0) ← (C) |
1 |
1 |
4 |
- |
- |
- |
+ |
- |
rar |
(An) ← (An+1), (C) ← (A0), (A7) (C) |
1 |
1 |
4 |
- |
- |
- |
+ |
- |
stc |
(C) ← (1) |
|
|
|
- |
- |
- |
+ |
- |
cmc |
(C) ← (#C) |
|
|
|
- |
- |
- |
+ |
- |
cma |
(A) ← (#A) |
|
|
|
- |
- |
- |
- |
- |
Команды передачи управления |
|||||||||
Мнемоника |
Описание команды |
Дл. |
МЦ |
Т |
Флажки |
||||
Z |
S |
P |
C |
AC |
|||||
jmp addr |
(PC) ← (byte 3) (byte 2) |
3 |
3 |
10 |
- |
- |
- |
- |
- |
call addr |
((SP)-1) ← (PCH) ((SP)-2) ← (PCL) (SP) ← (SP)-2 (PC) ← (byte 3)(byte 2) |
3 |
5 |
17 |
- |
- |
- |
- |
- |
ret |
(PCL) ← ((SP)) PCH) ← ((SP)+1) (SP) ← (SP)+2 |
1 |
3 |
10 |
- |
- |
- |
- |
- |
j condition addr |
Если условие condition истинно, (PC) ← (byte 3) (byte 2), иначе - следующая команда |
3 |
3 |
10 |
- |
- |
- |
- |
- |
c condition addr |
Если условие condition истинно, ((SP)-1) ← (PCH) ((SP)-2) ← (PCL) (SP) ← (SP)-2 (PC) ← (byte 3)(byte 2), иначе - следующая команда |
3 |
5/3 |
17/11 |
- |
- |
- |
- |
- |
Мнемоника |
Описание команды |
Дл. |
МЦ |
Т |
Флажки |
||||
Z |
S |
P |
C |
AC |
|||||
r condition |
(PCL) ← ((SP)) PCH) ← ((SP)+1) (SP) ← (SP)+2 |
1 |
3/1 |
11/5 |
- |
- |
- |
- |
- |
pchl |
(PCH) ← (H), (PCL) ← (L) |
1 |
1 |
5 |
- |
- |
- |
- |
- |
RST n |
((SP)-1) ← (PCH) ((SP)-2) ← (PCL) (SP) ← (SP)-2 (PC) ← 8*(NNN) |
1 |
3 |
11 |
- |
- |
- |
- |
- |
Команды ввода и вывода, обращения к стеку и управления МП |
|||||||||
Мнемоника |
Описание команды |
Дл. |
МЦ |
Т |
Флажки |
||||
Z |
S |
P |
C |
AC |
|||||
in port |
(A) ← (port) |
2 |
3 |
10 |
- |
- |
- |
- |
- |
out port |
(port) ← (A) |
2 |
3 |
10 |
- |
- |
- |
- |
- |
push rp |
((SP)-1) ← (rh) ((SP)-2) ← (rl) (SP) ← (SP)-2 |
1 |
3 |
11 |
- |
- |
- |
- |
- |
push PSW |
((SP)-1) ← (A) ((SP)-2) ← (F) (SP) ← (SP)-2 |
1 |
3 |
11 |
- |
- |
- |
- |
- |
pop rp |
(rl) ← ((SP)) (rh) ← ((SP)+1) (SP) ← (SP)+2 |
1 |
3 |
10 |
- |
- |
- |
- |
- |
pop PSW |
(F) ← ((SP)), (A) ← ((SP)+1) (SP) ← (SP)+2 |
1 |
3 |
11 |
+ |
+ |
+ |
+ |
+ |
xthl |
(L) ↔ ((SP)) (H) ↔ ((SP)+1) |
1 |
5 |
18 |
- |
- |
- |
- |
- |
sphl |
(SP) ← (H)(L) |
1 |
1 |
5 |
- |
- |
- |
- |
- |
ei |
Разрешение прерывания |
1 |
1 |
4 |
- |
- |
- |
- |
- |
di |
Запрещение прерывания |
1 |
1 |
4 |
- |
- |
- |
- |
- |
hlt |
Останов |
1 |
1 |
7 |
- |
- |
- |
- |
- |
nop |
Бездействие |
1 |
1 |
4 |
- |
- |
- |
- |
- |