i8080_commands
.pdfСистема команд микропроцессора Intel 8080
Команда |
Код |
Описание |
|
|
|
|
|
ADD A |
87 |
Сложить A + A результат записать в A |
|
|
|
|
|
ADD B |
80 |
Сложить B + A результат записать в A |
|
|
|
|
|
ADD C |
81 |
Сложить C + A результат записать в A |
|
|
|
|
|
ADD D |
82 |
Сложить D + A результат записать в A |
|
|
|
|
|
ADD E |
83 |
Сложить E + A результат записать в A |
|
|
|
|
|
ADD H |
84 |
Сложить H + A результат записать в A |
|
|
|
|
|
ADD L |
85 |
Сложить L + A результат записать в A |
|
|
|
|
|
ADD M |
86 |
Сложить M(HL) + A результат записать в A |
|
|
|
|
|
ADI (d8) |
C6 |
Сложить d8 + A результат записать в A |
|
|
|
|
|
ADC A |
8F |
Сложить A + A + CY результат записать в A |
|
|
|
|
|
ADC B |
88 |
Сложить B + A + CY результат записать в A |
|
|
|
|
|
ADC C |
89 |
Сложить C + A + CY результат записать в A |
|
|
|
|
|
ADC D |
8A |
Сложить D + A + CY результат записать в A |
|
|
|
|
|
ADC E |
8B |
Сложить E + A + CY результат записать в A |
|
|
|
|
|
ADC H |
8C |
Сложить H + A + CY результат записать в A |
|
|
|
|
|
ADC L |
8D |
Сложить L + A + CY в результат записать A |
|
|
|
|
|
ADC M |
8E |
Сложить M(HL) + A + CY результат записать в A |
|
|
|
|
|
ACI (d8) |
CE |
Сложить d8 + A + CY результат записать в A |
|
|
|
|
|
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 |
Произвести логическую операцию И между M(HL) и A |
|
|
|
|
|
ANI (d8) |
E6 |
Произвести логическую операцию И между байтом данных |
|
и аккумулятором |
|||
|
|
||
|
|
|
|
CALL (adr) |
CD |
Вызвать подпрограмму по адресу adr |
|
|
|
|
|
CZ (adr) |
CC |
Вызвать подпрограмму по адресу adr, если результат 0 |
|
|
|
|
|
СNZ (adr) |
C4 |
Вызвать подпрограмму по адресу adr, если результат не 0 |
|
|
|
|
|
СP (adr) |
F4 |
Вызвать подпрограмму по адресу adr, если результат |
|
положительный |
|||
|
|
||
|
|
|
|
СM (adr) |
FC |
Вызвать подпрограмму по адресу adr, если результат |
|
отрицательный |
|||
|
|
||
|
|
|
CC (adr) |
DC |
Вызвать подпрограмму по адресу adr, если есть перенос |
|
|
|
|
|
CNC (adr) |
D4 |
Вызвать подпрограмму по адресу adr, если нет переноса |
|
|
|
|
|
CPE (adr) |
EC |
Вызвать подпрограмму по адресу adr, если результат |
|
четный |
|||
|
|
||
|
|
|
|
CPO (adr) |
E4 |
Вызвать подпрограмму по адресу adr, если результат |
|
нечетный |
|||
|
|
||
|
|
|
|
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 с M(HL) |
|
|
|
|
|
CPI (d8) |
FE |
Сравнить A с байтом данных |
|
|
|
|
|
DAA |
27 |
Произвести десятичную коррекцию аккумулятора |
|
|
|
|
|
DAD B |
09 |
Сложить BC с HL, результат записать в HL |
|
|
|
|
|
DAD D |
19 |
Сложить DE с HL, результат записать в HL |
|
|
|
|
|
DAD H |
29 |
Сложить HL с HL (удвоение HL) |
|
|
|
|
|
DAD SP |
39 |
Сложить SP с HL, результат записать в HL |
|
|
|
|
|
DCR A |
3D |
A - 1 |
|
|
|
|
|
DCR B |
05 |
B - 1 |
|
|
|
|
|
DCR C |
0D |
C - 1 |
|
|
|
|
|
DCR D |
15 |
D - 1 |
|
|
|
|
|
DCR E |
1D |
E - 1 |
|
|
|
|
|
DCR H |
25 |
H - 1 |
|
|
|
|
|
DCR L |
2D |
L - 1 |
|
|
|
|
|
DCR M |
35 |
M(HL) -1 |
|
|
|
|
|
DCX B |
0B |
BC - 1 |
|
|
|
|
|
DCX D |
1B |
DE -1 |
|
|
|
|
|
DCX H |
2B |
HL - 1 |
|
|
|
|
|
DCX SP |
3B |
SP -1 |
|
|
|
|
|
DI |
F3 |
Запретить прерывания |
|
|
|
|
|
EI |
FB |
Разрешить прерывания |
|
|
|
|
|
HLT |
76 |
Остановить процессор |
|
|
|
|
INR A |
3C |
A + 1 |
|
|
|
|
|
INR B |
04 |
B + 1 |
|
|
|
|
|
INR C |
0C |
C + 1 |
|
|
|
|
|
INR D |
14 |
D + 1 |
|
|
|
|
|
INR E |
1C |
E + 1 |
|
|
|
|
|
INR H |
24 |
H + 1 |
|
|
|
|
|
INR L |
2C |
L + 1 |
|
|
|
|
|
INR M |
34 |
M(HL) + 1 |
|
|
|
|
|
INX B |
03 |
BС + 1 |
|
|
|
|
|
INX D |
13 |
DE + 1 |
|
|
|
|
|
INX H |
23 |
HL + 1 |
|
|
|
|
|
INX SP |
33 |
SP + 1 |
|
|
|
|
|
JMP (adr) |
C3 |
Перейти по указанному в команде адресу безусловно |
|
|
|
|
|
JZ (adr) |
CA |
Перейти по указанному в команде адресу, если результат 0 |
|
|
|
|
|
JNZ (adr) |
C2 |
Перейти по указанному в команде адресу, если результат |
|
не 0 |
|||
|
|
||
|
|
|
|
JP (adr) |
F2 |
Перейти по указанному в команде адресу, если результат |
|
положительный |
|||
|
|
||
|
|
|
|
JM (adr) |
FA |
Перейти по указанному в команде адресу, если результат |
|
отрицательный |
|||
|
|
||
|
|
|
|
JC (adr) |
DA |
Перейти по указанному в команде адресу, если есть |
|
перенос |
|||
|
|
||
|
|
|
|
JNC (adr) |
D2 |
Перейти по указанному в команде адресу, если нет |
|
переноса |
|||
|
|
||
|
|
|
|
JPE (adr) |
EA |
Перейти по указанному в команде адресу, если паритет |
|
чётный |
|||
|
|
||
|
|
|
|
JPO (adr) |
E2 |
Перейти по указанному в команде адресу, если паритет |
|
нечётный |
|||
|
|
||
|
|
|
|
LDA (adr) |
3A |
Копировать в A данные из ячейки памяти по указанному в |
|
команде адресу |
|||
|
|
||
|
|
|
|
LDAX B |
0A |
Копировать в A данные из ячейки памяти по адресу |
|
записанному в BC |
|||
|
|
||
|
|
|
|
LDAX D |
1A |
Копировать в A данные из ячейки памяти по адресу |
|
записанному в DE |
|||
|
|
||
|
|
|
|
LHLD (adr) |
2A |
Копировать в HL данные из ячейки памяти по указанному в |
|
команде адресу |
|||
|
|
||
|
|
|
|
LXI B, (d16) |
01 |
Записать в BC двухбайтный операнд |
|
|
|
|
|
LXI H, (d16) |
21 |
Записать в HL двухбайтный операнд |
|
|
|
|
|
LXI SP, (d16) |
31 |
Записать в SP двухбайтный операнд |
|
|
|
|
|
MOV A, A |
7F |
Копировать данные из A в A |
|
|
|
|
MOV A, B |
78 |
Копировать данные из 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 |
Копировать данные из M(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 |
Копировать данные из M(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 |
Копировать данные из M(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 |
Копировать данные из M(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 |
Копировать данные из M(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 |
Копировать данные из M(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 |
Копировать данные из M(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 |
Записать байт в A |
|
|
|
|
|
MVI B, (d8) |
06 |
Записать байт в B |
|
|
|
|
|
MVI C, (d8) |
0E |
Записать байт в C |
|
|
|
|
|
MVI D, (d8) |
16 |
Записать байт в D |
|
|
|
|
|
MVI E, (d8) |
1E |
Записать байт в E |
|
|
|
|
|
MVI H, (d8) |
26 |
Записать байт в H |
|
|
|
|
|
MVI L, (d8) |
2E |
Записать байт в L |
|
|
|
|
|
MVI M, (d8) |
36 |
Записать байт в M(HL) |
|
|
|
|
|
NOP |
00 |
Не выполнять никаких операций четыре такта |
|
|
|
|
|
ORA A |
B7 |
Произвести логичеcкую операцию ИЛИ между A и 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(HL) |
|
|
|
|
|
ORI (d8) |
F6 |
Произвести логичеcкую операцию ИЛИ между |
|
аккумулятором и байтом данных |
|||
|
|
||
|
|
|
|
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 вправо на один разряд с переносом |
|
|
|
|
|
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 |
Вызвать подпрограмму по адресу 0h |
|
|
|
|
|
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 |
|
|
|
|
|
SPHL |
F9 |
Копировать данные из HL в SP |
|
|
|
|
|
SHLD (adr) |
22 |
Копировать данные из HL в M(adr) |
|
|
|
|
|
STA (adr) |
32 |
Копировать данные из A в M(adr) |
|
|
|
|
|
STAX B |
02 |
Копировать данные из A в M(BC) |
|
|
|
|
|
STAX D |
12 |
Копировать данные из A в M(DE) |
|
|
|
|
|
STC |
37 |
Установить флаг переноса (FC=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(HL) |
|
|
|
|
|
SUI (d8) |
D6 |
Из аккумулятора вычесть байт данных |
|
|
|
|
|
SBB A |
9F |
Из А вычесть А |
|
|
|
|
|
SBB B |
98 |
Из А вычесть B c заёмом |
|
|
|
|
|
SBB C |
99 |
Из А вычесть C c заёмом |
|
|
|
|
|
SBB D |
9A |
Из А вычесть D c заёмом |
|
|
|
|
|
SBB E |
9B |
Из А вычесть E c заёмом |
|
|
|
|
|
SBB H |
9C |
Из А вычесть H c заёмом |
|
|
|
|
|
SBB L |
9D |
Из А вычесть L c заёмом |
|
|
|
|
|
SBB M |
9E |
Из А вычесть M(HL) c заёмом |
|
|
|
|
|
SBI (d8) |
DE |
Из аккумулятора вычесть байт данных c заёмом |
|
|
|
|
|
XCHG |
EB |
Обменять содержимое DE и HL |
|
|
|
|
|
XTHL |
E3 |
Обменять содержимое вершины стека с содержимым HL |
|
|
|
|
|
XRA A |
AF |
Произвести логичеcкую операцию исключающее ИЛИ |
|
между A и A |
|||
|
|
||
|
|
|
|
XRA B |
A8 |
Произвести логичеcкую операцию исключающее ИЛИ |
|
между B и A |
|||
|
|
||
|
|
|
|
XRA C |
A9 |
Произвести логичеcкую операцию исключающее ИЛИ |
|
между C и A |
|||
|
|
||
|
|
|
|
XRA D |
AA |
Произвести логичеcкую операцию исключающее ИЛИ |
|
между D и A |
|||
|
|
||
|
|
|
|
XRA E |
AB |
Произвести логичеcкую операцию исключающее ИЛИ |
|
между E и A |
|||
|
|
||
|
|
|
|
XRA H |
AC |
Произвести логичеcкую операцию исключающее ИЛИ |
|
между H и A |
|||
|
|
||
|
|
|
XRA L |
AD |
Произвести логичеcкую операцию исключающее ИЛИ |
|
между L и A |
|||
|
|
||
|
|
|
|
XRA M |
AE |
Произвести логичеcкую операцию исключающее ИЛИ |
|
между M(HL) и A |
|||
|
|
||
|
|
|
|
XRI (d8) |
EE |
Произвести логичеcкую операцию исключающее ИЛИ |
|
между байтом данных и аккумулятором |
|||
|
|
||
|
|
|
Регистр флагов
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
S |
Z |
|
AC |
|
P |
|
C |
|
|
|
|
|
|
|
|
S – знак
Z – нуль
AC – вспомогательный перенос
P – чётность С – перенос