Главная.
Новости.
Программы.
Файлы.
Контакты.
Чат "Пиво".
Статьи.
Ссылки.
Гостевая.
|
Справочник по системе команд микропроцессора Intel 8080.
Команды этого процессора бывают одно-, двух- и трехбайтными. В первом байте всегда содержится код операции.
Обозначения.
A, B, ..., L - названия 8-разрядных регистров.
BC, DE, HL - названия регистровых пар, образующих 16-разрядные регистры.
SP - 16-разрядный указатель стека.
PSW - слово состояния программы, содержит регистр флагов.
- двухбайтовый адрес.
d8 - байт непосредственных данных.
d16 - два байта непосредственных данных.
pp - номер порта ввода-вывода.
Команда
|
Код
|
Описание |
ADD A
|
87
|
A←(A) + (A)
|
ADD B
|
80
|
A←(B) + (A)
|
ADD C
|
81
|
A←(C) + (A)
|
ADD D
|
82
|
A←(D) + (A)
|
ADD E
|
83
|
A←(E) + (A)
|
ADD H
|
84
|
A←(H) + (A)
|
ADD L
|
85
|
A←(L) + (A)
|
ADD M
|
86
|
A←Loc(HL) + (A)
|
ADI d8
|
C6
|
A←d8 + (A)
|
ADC A
|
8F
|
A←(A) + (A) + CY
|
ADC B
|
88
|
A←(B) + (A) + CY
|
ADC C
|
89
|
A←(C) + (A) + CY
|
ADC D
|
8A
|
A←(D) + (A) + CY
|
ADC E
|
8B
|
A←(E) + (A) + CY
|
ADC H
|
8C
|
A←(H) + (A) + CY
|
ADC L
|
8D
|
A←(L) + (A) + CY
|
ADC M
|
8E
|
A←Loc(HL) + (A) + CY
|
ACI d8
|
CE
|
A←d8 + (A) + CF
|
ANA A
|
A7
|
Проверка A
|
ANA B
|
A0
|
Логическое И B с A
|
ANA C
|
A1
|
Логическое И C с A
|
ANA D
|
A2
|
Логическое И D с A
|
ANA E
|
A3
|
Логическое И E с A
|
ANA H
|
A4
|
Логическое И H с A
|
ANA L
|
A5
|
Логическое И L с A
|
ANA M
|
A6
|
Логическое И Loc(HL) с A
|
ANI d8
|
E6
|
Логическое И непосредственные данные с A
|
CALL a16
|
CD
|
Передать управление подпрограмме по адресу a16 |
CZ a16
|
CC
|
Вызвать подпрограмму по адресу a16, если нуль
|
СNZ a16
|
C4
|
То же, если не нуль
|
СP a16
|
F4
|
То же, если плюс
|
СM a16
|
FC
|
То же, если минус
|
CC a16
|
DC |
То же, если перенос
|
CNC a16
|
D4
|
То же, если нет переноса
|
CPE a16
|
EC
|
То же, если чётно
|
CPO a16
|
E4
|
То же, если нечётно
|
CMA
|
2F
|
Инвертировать A
|
CMC
|
3F
|
Инвертировать перенос
|
CMP A
|
BF
|
Установить флаг FZ
|
CMP B
|
B8
|
Сравнить A с B
|
CMP C
|
B9
|
Сравнить A с C
|
CMP D
|
BA
|
Сравнить A с D
|
CMP E
|
BB
|
Сравнить A с E
|
CMP H
|
BC
|
Сравнить A с H
|
CMP L
|
BD
|
Сравнить A с L
|
CMP M
|
BE
|
Сравнить A с Loc(HL)
|
CPI d8
|
FE |
Сравнить A с непосредственными данными, заданными в команде
|
DAA
|
27
|
Десятичная коррекция аккумулятора (совершенно бесполезная команда. Я так и ни разу ей и не воспользовался:)
|
DAD
B
|
09 |
Сложить BC с HL
|
DAD
D
|
19
|
Сложить DE с HL
|
DAD
H
|
29
|
Сложить HL с HL (удвоение HL)
|
DAD
SP
|
39
|
Сложить SP с HL
|
DCR A
|
3D
|
A←(A) - 1 (декремент A)
|
DCR B
|
05
|
B←(B) - 1
|
DCR C
|
0D
|
C←(C) - 1
|
DCR D
|
15
|
D←(D) - 1
|
DCR E
|
1D
|
E←(E) - 1
|
DCR H
|
25
|
H←(H) - 1
|
DCR L
|
2D
|
L←(L) - 1
|
DCR M
|
35 |
Loc (HL)←(Loc(HL)) -1
|
DCX B
|
0B
|
BC←(BC) - 1
|
DCX D
|
1B
|
DE←(DE) -1
|
DCX H
|
2B
|
HL←(HL) - 1
|
DCX SP
|
3B
|
SP←(SP) -1
|
DI
|
F3
|
Запретить прерывания
|
EI
|
FB
|
Разрешить прерывания
|
HLT
|
76
|
Останов процессора
|
IN pp
|
DB
|
Ввести данные из порта pp
|
INR A
|
3C
|
A←(A) + 1 (инкрементировать A)
|
INR B
|
04
|
Инкрементировать B
|
INR C
|
0C
|
Инкрементировать C
|
INR D
|
14 |
Инкрементировать D
|
INR E
|
1C |
Инкрементировать E
|
INR H
|
24
|
Инкрементировать H
|
INR L
|
2C
|
Инкрементировать L
|
INR M
|
34
|
Инкрементировать содержимое Loc(HL)
|
INX B
|
03
|
Инкрементировать BС
|
INX D
|
13
|
Инкрементировать DE
|
INX H
|
23
|
Инкрементировать HL
|
INX SP
|
33
|
Инкрементировать SP
|
JMP a16
|
C3
|
Перейти по адресу a16
|
JZ a16
|
CA
|
То же, если нуль
|
JNZ a16
|
C2
|
То же, если не нуль
|
JP a16
|
F2
|
То же, если плюс
|
JM a16
|
FA
|
То же, если минус
|
JC a16
|
DA
|
То же, если перенос
|
JNC a16
|
D2
|
То же, если нет переноса
|
JPE a16
|
EA
|
Перейти по адресу a16, если паритет чётный
|
JPO a16
|
E2
|
Перейти по адресу a16, если паритет нечётный
|
LDA a16 |
3A
|
Загрузить A из
ячейки
с адресом a16
|
LDAX B
|
0A
|
Загрузить A из ячейки с адресом Loc(BC)
|
LDAX D
|
1A
|
Загрузить A из ячейки с адресом Loc(DE)
|
LHLD a16
|
2A
|
Загрузить в HL содержимое ячейки с адресом a16
|
LXI B,d16
|
01
|
Загрузить в BC непосредственные данные d16
|
LXI H,d16
|
21
|
Загрузить в HL непосредственные данные d16
|
LXI SP,d16
|
31
|
Загрузить в SP непосредственные данные d16
|
MOV A,A |
7F |
Переслать из A в A |
MOV A,B
|
78
|
Переслать из B в A (B←(A) )
|
MOV A,C
|
79
|
Переслать из C в
A |
MOV A,D
|
7A
|
Переслать из D в
A
|
MOV A,E
|
7B
|
Переслать из E
в
A
|
MOV A,H
|
7C
|
Переслать из H
в
A
|
MOV A,L
|
7D
|
Переслать из L
в
A
|
MOV A,M
|
7E
|
Переслать из Loc(HL)
в
A
|
MOV B,A
|
47
|
Переслать из A в B |
MOV B,B |
40 |
Переслать из B в B
(ещё одна странная команда) |
MOV B,C
|
41
|
Переслать из C
в B
|
MOV B,D
|
42
|
Переслать из D
в B
|
MOV B,E
|
43
|
Переслать из E
в B
|
MOV B,H
|
44
|
Переслать из H
в B
|
MOV B,L
|
45
|
Переслать из L
в B
|
MOV B,M
|
46
|
Переслать из Loc(HL)
в B
|
MOV C,A
|
4F
|
Переслать из A
в C
|
MOV C,B
|
48
|
Переслать из B
в C
|
MOV C,C |
49 |
Переслать из C в C |
MOV C,D
|
4A
|
Переслать из D
в C
|
MOV C,E
|
4B
|
Переслать из E
в C
|
MOV C,H
|
4C
|
Переслать из H
в C
|
MOV C,L
|
4D
|
Переслать из L
в C
|
MOV C,M
|
4E
|
Переслать из Loc(HL)
в C
|
MOV D,A
|
57
|
Переслать из A в
D
|
MOV D,B
|
50
|
Переслать из B
в
D
|
MOV D,C
|
51
|
Переслать из C
в
D
|
MOV D,D |
52 |
Переслать из D в D |
MOV D,E
|
53
|
Переслать из E
в
D
|
MOV D,H
|
54
|
Переслать из H
в
D
|
MOV D,L
|
55
|
Переслать из L
в
D
|
MOV D,M
|
56
|
Переслать из Loc(HL)
в
D
|
MOV E,A
|
5F
|
Переслать из A
в E |
MOV E,B
|
58
|
Переслать из B
в E
|
MOV E,C
|
59
|
Переслать из C
в E
|
MOV E,D
|
5A
|
Переслать из D
в E
|
MOV E,E |
5B |
Переслать из E в E |
MOV E,H
|
5C
|
Переслать из H
в E
|
MOV E,L
|
5D
|
Переслать из L
в E
|
MOV E,M
|
5E
|
Переслать из Loc(HL)
в E
|
MOV H,A
|
67
|
Переслать из A
в H |
MOV H,B
|
60
|
Переслать из B
в H |
MOV H,C
|
61
|
Переслать из C
в H
|
MOV H,D
|
62
|
Переслать из D
в H
|
MOV H,E
|
63
|
Переслать из E
в H
|
MOV H,H |
64 |
Переслать из H в H |
MOV H,L
|
65
|
Переслать из L
в H
|
MOV H,M
|
66
|
Переслать из Loc(HL)
в H
|
MOV L,A
|
6F
|
Переслать из A
в L |
MOV L,B
|
68
|
Переслать из B
в L
|
MOV L,C
|
69
|
Переслать из C
в L
|
MOV L,D
|
6A
|
Переслать из D
в L
|
MOV L,E
|
6B
|
Переслать из E
в L
|
MOV L,H
|
6C
|
Переслать из H
в L
|
MOV L,L |
6D |
Переслать из L в L |
MOV L,M
|
6E
|
Переслать из Loc(HL)
в L
|
MOV M,A
|
77
|
Переслать из A
в M |
MOV M,B
|
70
|
Переслать из B
в M
|
MOV M,C
|
71
|
Переслать из C
в M
|
MOV M,D
|
72
|
Переслать из D
в M
|
MOV M,E
|
73
|
Переслать из E
в M
|
MOV M,H
|
74
|
Переслать из H
в M
|
MOV M,L
|
75
|
Переслать из L
в M
|
MVI A,d8
|
3E
|
Переслать d8 в A
|
MVI B,d8
|
06
|
Переслать d8 в B
|
MVI C,d8
|
0E
|
Переслать d8 в C
|
MVI D,d8
|
16
|
Переслать d8 в D
|
MVI E,d8
|
1E
|
Переслать d8 в E
|
MVI H,d8
|
26
|
Переслать d8 в H
|
MVI L,d8
|
2E
|
Переслать d8 в L
|
MVI M,d8
|
36
|
Переслать d8 в Loc(HL)
|
NOP |
00
|
Нет операции
|
ORA A
|
B7
|
Проверить A и сбросить перенос
|
ORA B
|
B0
|
Логичеcкая операция A
ИЛИ B |
ORA C
|
B1
|
Логичеcкая операция A
ИЛИ C
|
ORA D
|
B2
|
Логичеcкая операция A
ИЛИ D
|
ORA E
|
B3
|
Логичеcкая операция A
ИЛИ E
|
ORA H
|
B4
|
Логичеcкая операция A
ИЛИ H
|
ORA L
|
B5
|
Логичеcкая операция A
ИЛИ L
|
ORA M
|
B6
|
Логичеcкая операция A
ИЛИ M
|
ORI d8
|
F6
|
Логичеcкая операция A
ИЛИ d8
|
OUT pp
|
D3
|
Записать A в порт pp
|
PCHL
|
E9
|
Передать управление по адресу в HL
|
POP B
|
C1
|
Извлечь слово из стека в BC
|
POP D
|
D1
|
Извлечь слово из стека в DE
|
POP H
|
E1
|
Извлечь слово из стека в HL
|
POP PSW
|
F1
|
Извлечь слово из стека в PSW
|
PUSH B
|
C5
|
Поместить в стек содержимое BC
|
PUSH D
|
D5
|
Поместить в стек содержимое DE
|
PUSH H
|
E5
|
Поместить в стек содержимое HL
|
PUSH PSW
|
F5
|
Поместить в стек содержимое PSW
|
RAL
|
17
|
Циклический сдвиг CY + A влево
|
RAR
|
1F
|
Циклический сдвиг CY + A вправо
|
RLC |
07
|
Сдвинуть A влево на один разряд с переносом
|
RRC |
0F
|
Сдвинуть A вправо на один разряд с переносом
|
RIM
|
20
|
Считать маску прерывания (только в 8085)
|
RET
|
C9
|
Возврат из подпрограммы
|
RZ
|
C8
|
Возврат из подпрограммы, если FZ=0
|
RNZ
|
C0
|
Возврат из подпрограммы, если FZ=1
|
RP
|
F0
|
Возврат из подпрограммы, если FP=1
|
RM
|
F8
|
Возврат из подпрограммы, если FP=0
|
RC
|
D8
|
Возврат из подпрограммы, если FC=1
|
RNC
|
D0
|
Возврат из подпрограммы, если FC=0
|
RPE
|
E8
|
Возврат из подпрограммы, если паритет чётный
|
RPO
|
E0
|
Возврат из подпрограммы, если паритет нечётный
|
RST 0
|
C7
|
Запуск программы с адреса 0
|
RST 1
|
CF
|
Запуск программы с адреса 8h
|
RST 2
|
D7
|
Запуск программы с адреса 10h
|
RST 3
|
DF
|
Запуск программы с адреса 18h
|
RST 4
|
E7
|
Запуск программы с адреса 20h
|
RST 5
|
EF
|
Запуск программы с адреса 28h
|
RST 6
|
F7
|
Запуск программы с адреса 30h
|
RST 7
|
FF
|
Запуск программы с адреса 38h
|
SIM |
30
|
Установить маску прерывания (только в 8085)
|
SPHL
|
F9
|
Загрузить SP из HL
|
SHLD a16
|
22
|
Записать HL по адресу a16
|
STA a16
|
32
|
Записать A по адресу a16
|
STAX B
|
02
|
Записать A по адресу Loc(BC)
|
STAX D
|
12
|
Записать A по адресу Loc(DE)
|
STC
|
37
|
Установить флаг переноса (CF=1)
|
SUB A
|
97 |
Вычесть А из А (очистить А)
|
SUB B
|
90 |
Вычесть B из А
|
SUB C
|
91 |
Вычесть C из А
|
SUB D
|
92 |
Вычесть D из А
|
SUB E
|
93 |
Вычесть E из А
|
SUB H
|
94 |
Вычесть H из А
|
SUB L
|
95 |
Вычесть L из А
|
SUB M
|
96 |
Вычесть M из А
|
SUI d8
|
D6 |
Вычесть d8 из А
|
SBB A
|
9F
|
Вычесть А из А (очистить А)
|
SBB B
|
98
|
Вычесть c заёмом B из А
|
SBB C
|
99
|
Вычесть c заёмом C из А
|
SBB D
|
9A
|
Вычесть c заёмом D из А
|
SBB E
|
9B
|
Вычесть c заёмом E из А
|
SBB H
|
9C
|
Вычесть c заёмом H из А
|
SBB L
|
9D
|
Вычесть c заёмом L из А
|
SBB M
|
9E
|
Вычесть c заёмом M из А
|
SBI d8
|
DE
|
Вычесть c заемом d8 из А
|
XCHG
|
EB
|
Обмен содержимым DE и HL
|
XTHL
|
E3
|
Обмен содержимого вершины стека с содержимым HL
|
XRA A
|
AF
|
Исключающее ИЛИ A с A (очистка A)
|
XRA B
|
A8
|
Исключающее ИЛИ B с A
|
XRA C
|
A9
|
Исключающее ИЛИ C с A
|
XRA D
|
AA
|
Исключающее ИЛИ D с A
|
XRA E
|
AB
|
Исключающее ИЛИ E с A
|
XRA H
|
AC
|
Исключающее ИЛИ H с A
|
XRA L
|
AD
|
Исключающее ИЛИ L с A
|
XRA M
|
AE
|
Исключающее ИЛИ Loc(HL) с A
|
XRI d8
|
EE
|
Исключающее ИЛИ d8 с A
|
Команды с кодами 08, 10, 18, 38, CB , D 9, DD , ED и FD в системе команд МП 8080 отсутствуют.
>>
|