Мнемоника
| Описание команды
| Код команды
| Длина
Коман-
ды,
байт
| Число
Тактов
| Флаги условий
|
D7
| D6
| D5
| D4
| D3
| D2
| D1
| D0
| S Z AC P CY
|
MOV R1, R2
| Передача из регистра R2
в регистр R1
|
|
| D
| D
| D
| S
| S
| S
|
|
| - - - - -
|
MOV M, R
| Передача из регистра в
память
|
|
|
|
|
| S
| S
| S
|
|
| - - - - -
|
MOV R, M
| Передача из памяти в
регистр
|
|
| D
| D
| D
|
|
|
|
|
| - - - - -
|
MVI R
| Передача байта в регистр
|
|
| D
| D
| D
|
|
|
|
|
| - - - - -
|
MVI M
| Передача байта в память
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
LXI RP
| Загрузка парных
регистров B-C, D-E, H-L,
S-P
|
|
| R
| R
|
|
|
|
|
|
| - - - - -
|
LDAX RP
| Загрузка аккумулятора
По адресу, указанному
Парой регистров B-C или
D-E
|
|
| R
| R
|
|
|
|
|
|
| - - - - -
|
STAX RP
| Занесение содержимого
аккумулятора по адресу,
указанному парой
регистров B-C или D-E
|
|
| R
| R
|
|
|
|
|
|
| - - - - -
|
LDA
| Загрузка аккумулятора
по адресу, указанному в
команде
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
STA
| Занесение содержимого
аккумулятора по адресу,
указанному в команде
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
LHLD
| Загрузка регистров L, H
из двух соседних ячеек,
начиная с адреса,
указанного в команде
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
SHLD
| Занесение содержимого
регистров L, H в две
соседние ячейки,
начиная с адреса,
указанного в команде
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
XCHG
| Обмен данными между
парами регистров H-L и
D-E
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
XTHL
| Обмен данными между
SP и H-L
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
SPHL
| Занесение содержимого
регистра H-L в SP
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
PUSH RP
| Ввод содержимого
регистров B-C, D-E или
H-L в стэк
|
|
| R
| R
|
|
|
|
|
|
| - - - - -
|
PUSH PSW
| Ввод PSW в стэк
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
POP RP
| Выдача данных из стека
в регистры В-С, D-E, H-L
|
|
| R
| R
|
|
|
|
|
|
| - - - - -
|
POP PSW
| Выдача данных из стека
в аккумулятор и регистр
признаков
|
|
|
|
|
|
|
|
|
|
| + + + + +
|
ADD R
| Сложение содержимого
регистра и аккумулятора
|
|
|
|
|
| S
| S
| S
|
|
| + + + + +
|
ADC R
| То же, но с учётом
переноса CY
|
|
|
|
|
| S
| S
| S
|
|
| + + + + +
|
ADD M
| Сложение содержимого
ячейки памяти и
аккумулятора
|
|
|
|
|
|
|
|
|
|
| + + + + +
|
ADC M
| То же, но с учётом
переноса CY
|
|
|
|
|
|
|
|
|
|
| + + + + +
|
ADI
| Сложение байта с
содержимым
аккумулятора
|
|
|
|
|
|
|
|
|
|
| + + + + +
|
ACI
| Сложение байта с
содержимым
аккумулятора с учётом
переноса СУ
|
|
|
|
|
|
|
|
|
|
| + + + + +
|
DAD RP
| Сложение содержимого
пар регистров В-С, D-E,
H-L, SP с содержимым
пары H-L
|
|
| R
| R
|
|
|
|
|
|
| - - - - +
|
SUB R
| Вычитание содержимого
регистра из содержимого
аккумулятора
|
|
|
|
|
| S
| S
| S
|
|
| + + + + +
|
SBB R
| То же, но с заёмом
|
|
|
|
|
| S
| S
| S
|
|
| + + + + +
|
SUB M
| Вычитание содержимого
ячейки памяти из
содержимого
аккумулятора
|
|
|
|
|
|
|
|
|
|
| + + + + +
|
SBB M
| То же, но с заёмом
|
|
|
|
|
|
|
|
|
|
| + + + + +
|
SUI
| Вычитание байта из
содержимого
аккумулятора
|
|
|
|
|
|
|
|
|
|
| + + + + +
|
SBI
| То же, но с учётом заёма
|
|
|
|
|
|
|
|
|
|
| + + + + +
|
INR R
| Увеличение
содержимого регистра на
единицу
|
|
| D
| D
| D
|
|
|
|
|
| + + + + -
|
INR M
| Увеличение
содержимого ячейки
памяти на единицу
|
|
|
|
|
|
|
|
|
|
| + + + + -
|
DCR R
| Уменьшение
содержимого регистра на
единицу
|
|
| D
| D
| D
|
|
|
|
|
| + + + + -
|
DCR M
| Уменьшение
содержимого ячейки
памяти на единицу
|
|
|
|
|
|
|
|
|
|
| + + + + -
|
INX RP
| Увеличение
содержимого парных
регистров B-C, D-E, H-
L, SP на единицу
|
|
| R
| R
|
|
|
|
|
|
| - - - - -
|
DCR RP
| Уменьшение
содержимого парных
регистров B-C, D-E, H-
L, SP на единицу
|
|
| R
| R
|
|
|
|
|
|
| - - - - -
|
ANA R
| Поразрядное логическое
умножение содержимого
регистра и аккумулятора
|
|
|
|
|
| S
| S
| S
|
|
| + + 0 + 0
|
ANA M
| Поразрядное логическое
умножение содержимого
ячейки памяти и
аккумулятора
|
|
|
|
|
|
|
|
|
|
| + + 0 + 0
|
ANI
| Поразрядное логическое
умножение содержимого
аккумулятора и байта
|
|
|
|
|
|
|
|
|
|
| + + 0 + 0
|
XRA R
| Поразрядное
исключающее ИЛИ над
содержимым регистра
или аккумулятора
|
|
|
|
|
| S
| S
| S
|
|
| + + 0 + 0
|
XRA M
| Поразрядное
исключающее ИЛИ над
содержимым ячейки
памяти и аккумулятора
|
|
|
|
|
|
|
|
|
|
| + + 0 + 0
|
XRI
| Поразрядное
исключающее ИЛИ над
содержимым
аккумулятора и байтом
|
|
|
|
|
|
|
|
|
|
| + + 0 + 0
|
ORA R
| Поразрядное логическое
сложение содержимого
регистра или
аккумулятора
|
|
|
|
|
| S
| S
| S
|
|
| + + 0 + 0
|
ORA M
| Поразрядное логическое
сложение содержимого
ячейки памяти и
аккумулятора
|
|
|
|
|
|
|
|
|
|
| + + 0 + 0
|
ORI
| Поразрядное логическое
сложение содержимого
ячейки памяти и
аккумулятора
|
|
|
|
|
|
|
|
|
|
| + + 0 + 0
|
CMP R
| Сравнение содержимого
регистра и аккумулятора
|
|
|
|
|
| S
| S
| S
|
|
| + + + + +
|
CMP M
| Сравнение содержимого
ячейки памяти и
аккумулятора
|
|
|
|
|
|
|
|
|
|
| + + + + +
|
CPI
| Сравнение байта с
содержимым
аккумулятора
|
|
|
|
|
|
|
|
|
|
| + + + + +
|
RLC
| Циклический сдвиг
содержимого
аккумулятора влево
|
|
|
|
|
|
|
|
|
|
| - - - - +
|
RRC
| То же, но вправо
|
|
|
|
|
|
|
|
|
|
| - - - - +
|
RAL
| Циклический сдвиг
содержимого
аккумулятора влево
через перенос
|
|
|
|
|
|
|
|
|
|
| - - - - +
|
RAR
| То же, но вправо
|
|
|
|
|
|
|
|
|
|
| - - - - +
|
CMA
| Инвертирование
Аккумулятора
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
STC
| Установка флага
переноса СУ в единицу
|
|
|
|
|
|
|
|
|
|
| - - - - 1
|
CMC
| Инвертирование флага
переноса
|
|
|
|
|
|
|
|
|
|
| - - - -
|
DAA
| Двоично-десятичная
коррекция содержимого
аккумулятора
|
|
|
|
|
|
|
|
|
|
| + + + + +
|
JMP
| Безусловный переход
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
JC
| Переход при наличие
переноса
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
JNC
| Переход при отсутствии
переноса
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
JZ
| Переход при нуле
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
JNZ
| ««отсутствии нуля
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
JP
| ««плюсе
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
JM
| ««минусе
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
JPE
| ««четносте
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
JPO
| ««нечетности
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
PCHL
| Занесение в счетчик
команд содержимого
регистра H-L
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
CALL
| Вызов подпрограммы
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
CC
| То же, но при переносе
|
|
|
|
|
|
|
|
|
| 11/17
| - - - - -
|
CNC
| То же, но при отсутствии
переноса
|
|
|
|
|
|
|
|
|
| 11/17
| - - - - -
|
CZ
| Вызов подпрограммы
при нуле
|
|
|
|
|
|
|
|
|
| 11/17
| - - - - -
|
CNZ
| То же, но при отсутствии
нуля
|
|
|
|
|
|
|
|
|
| 11/17
| - - - - -
|
CP
| Вызов подпрограммы
при плюсе
|
|
|
|
|
|
|
|
|
| 11/17
| - - - - -
|
CM
| То же, но при минусе
|
|
|
|
|
|
|
|
|
| 11/17
| - - - - -
|
CPE
| Вызов подпрограммы
при чётности
|
|
|
|
|
|
|
|
|
| 11/17
| - - - - -
|
CPO
| То же, но при нечетности
|
|
|
|
|
|
|
|
|
| 11/17
| - - - - -
|
RET
| Возврат
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
RC
| ««при ереносе
|
|
|
|
|
|
|
|
|
| 5/11
| - - - - -
|
RNC
| ««отсутствии
переноса
|
|
|
|
|
|
|
|
|
| 5/11
| - - - - -
|
RZ
| ««нуле
|
|
|
|
|
|
|
|
|
| 5/11
| - - - - -
|
RNZ
| ««отсутствии нуля
|
|
|
|
|
|
|
|
|
| 5/11
| - - - - -
|
RP
| ««плюсе
|
|
|
|
|
|
|
|
|
| 5/11
| - - - - -
|
RM
| ««минусе
|
|
|
|
|
|
|
|
|
| 5/11
| - - - - -
|
RPE
| ««четности
|
|
|
|
|
|
|
|
|
| 5/11
| - - - - -
|
RPO
| ««нечетности
|
|
|
|
|
|
|
|
|
| 5/11
| - - - - -
|
RST
| Повторный запуск
|
|
| N
| N
| N
|
|
|
|
|
| - - - - -
|
IN
| Ввод
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
OUT
| Вывод
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
EI
| Разрешить прерывание
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
DI
| Запретить прерывание
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
NOP
| Отсутствие операции
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
HLT
| Останов
|
|
|
|
|
|
|
|
|
|
| - - - - -
|
Команда
| Описание операции
| B/M
| T
| T
| F
|
Группа команд передачи данных
|
MOV r1, r2
MOV r, M
MOV M, r
| r1 ← r2 { Move }
r ← M(rp H)
M(rp H) ← r
| 1/1
1/2
1/2
|
|
| -
-
-
|
MVI r, d8
MVI M, d8
LXI rp, d16
| r ← d8 { M o v e i mmediate}
M(rp H) ← d8
rp ← d16, rp=B,D,H или SP { L oad i mmediate}
| 2/2
2/3
3/3
|
|
| -
-
-
|
LDA addr
STA
| A ← M(addr) { L oad d irect a ccumulator}
M(addr) ←A { S tore d irect a ccumulator}
| 3/4
3/4
|
|
| -
-
|
LHLD addr
SHLD addr
| L ←M(addr), H ← M(addr+1) { L oad H and L direct}
M(addr) ←L, M(addr+1) ← H { S tore H and L direct}
| 3/5
3/5
|
|
| -
-
|
LDAX rp
STAX rp
| A ← M(rp), rp=B или D { L oa da ccumulator indirect}
M(rp) ←A, rp=B или D { St ore a ccumulator indirect}
| 1/2
1/2
|
|
| -
-
|
XCHG
| H ↔ D, L ↔ E {Exchange}
| 1/1
|
|
| -
|
Группа команд арифметических операций
|
ADD r
ADI d8
ADD M
ADC r
ADC M
ACI d8
| A←A + r { Add }
A←A + d8 { Ad d i mmediate}
A←A + M(rp H)
A←A + r + CY { Ad d with c arry}
A←A + M(rp H) + CY
A←A + d8 + CY { A dd with c arry i mmediate}
| 1/1
2/2
1/2
1/1
1/2
2/2
|
|
| +
+
+
+
+
+
|
SUB r
SUI d8
SUB M
SBB r
SBI d8
SBB M
| A←A – r { Sub tract }
A←A – d8 { Su btract i mmediate}
A←A – M(rp H)
A←A – r – CY { Su btract with b orrow}
A← A – d8 – CY
A← A – M(rp H) – CY { S u b tract i mmediate}
| 1/1
2/2
1/2
1/1
2/2
1/2
|
|
| +
+
+
+
+
+
|
INR r
INR M
DCR r
DCR M
INX rp
DCX rp
| r ← r + 1 { In c r ement}
M(rp H) ← M(rp H) + 1
r ← r – 1 { D e cr ement}
M(rp H) ←M(rp H) – 1
rp ← rp + 1, rp=B, D, H или SP { In crement rp}
rp ← rp – 1, rp=B, D, H или SP { D e cr ement rp}
| 1/1
1/3
1/1
1/3
1/1
1/1
|
|
| ∆
∆
∆
∆
–
–
|
DAD rp
DAA
| rp H ← rp H + rp, rp=B, D, H или SP {Double precision add}
Десятичная коррекция {Decimal adjust accumulator}
| 1/1
1/1
|
|
|
+
|
Группа команд логических операций
|
ANA r
ANI d8
ANA M
| A←A & r { An d register with a ccumulator}
A←A & d8 { An d i mmediate with accumulator}
A←A & M(rp H) { An d memory with a ccumulator}
| 1/1
2/2
1/2
|
|
| *
*
*
|
XRA r
XRI d8
XRA M
| A←A r { E x clusive o r register with a ccumulator}
A←A d8 { E x clusive o ri mmediate with accumulator}
A←A M(rp H) { E x clusive o r memory with a ccumulator}
| 1/1
2/2
1/2
|
|
| #
#
#
|
Команда
| Описание операции
| B/M
| T
| T
| F
|
ORA r
ORI d8
ORA M
CMP r
CPI d8
CMP M
| A←A r { Or register with a ccumulator}
A←A d8 { Ori mmediate with accumulator}
A←A M(rp H) { Or memory with a ccumulator}
A – r Z=1 при A=r, d8, M { C o mp are}
A – d8 CY=1 при A<r, d8, M { C om p are i mmediate}
A – M(rp H)
| 1/1
2/2
1/2
1/1
2/2
1/2
|
|
| #
#
#
+
+
+
|
RLC
RRC
RAL
RAR
|
| { R otate accumulator l eft in c arry}
{ R otate accumulator r ight in c arry}
{Rotate accumulator left through carry}
{Rotate accumulator right through carry}
| 1/1
1/1
1/1
1/1
|
|
|
|
CMA
CMC
STC
| A ← { C o m plement a ccumulator}
CY ← { C o m plement c arry}
CY ← 1 { S e tc arry}
| 1/1
1/1
1/1
|
|
| –
|
Группа команд передачи управления
|
JMP addr
J cond addr
PCHL
| PC ← addr { J u mp }
PC ← addr { J ump conditional}
PC ← HL { Load P rogram C ounter with H and L}
| 3/3
3/3
1/1
|
|
7/10
| –
–
–
|
CALL addr
C cond addr
| SP ← SP – 1, M(SP) ← PC h, { Call }
SP ← SP – 1, M(SP) ←PC l; PC ← addr { C all
conditional}
| 3/5
3/3/5
|
11/17
|
9/18
| –
–
|
RET
R cond
| PC l ← M(SP), SP ← SP + 1, { Ret urn}
PC h ← M(SP), SP ← SP + 1 { R eturn conditional}
| 1/3
1/1/3
|
5/11
|
6/12
| –
–
|
RST n
| SP ← SP – 1, M(SP) ← PC h, { Restart }
SP ← SP – 1, M(SP) ←PC l; PC ← 8 ×n (n= 0... 7)
| 1/3
|
|
| –
|
Группа команд управления стеком, вводом-выводом и состоянием МП
|
PUSH rp
PUSH PSW
POP rp
POP PSW
| SP←SP – 1, M(SP)←prh, SP←SP – 1, M(SP)←rpl { Push }
SP←SP – 1, M(SP) ← A, SP←SP – 1, M(SP)←F
rpl←M(SP), SP←SP + 1, rph ← M(SP), SP←SP+1 { Pop }
F←M(SP), SP←SP + 1, A← M(SP), SP←SP+1
| 1/3
1/3
1/3
1/3
|
|
| –
–
–
+
–
–
|
XTHL
SPHL
| L↔M(SP), H↔M(SP+1) {Exchange Top of Stack with H and L}
| 1/5
1/1
|
|
|
Команда
| Описание операции
| B/M
| T
| T
| F
|
IN port
OUT port
| A ← ПО(port) { In put}
ПО(port) ←A { Out put}
| 2/3
2/3
|
|
| –
–
|
EI
DI
| INTE = 1 после следующей команды { E nable I nterrupts}
INTE = 0 после данной команды { D isable I nterrupts}
| 1/1
1/1
|
|
| –
–
|
HLT
NOP
| Остановка процессора; PC ← PC + 1 { H al t }
Пустая операция { N o- op eration}
| 1/1
1/1
|
|
| –
–
|
SIM
RIM
| Установка маски прерываний { S et I nterrupt M ask}
Чтение маски прерываний { R ead I nterrupt M ask}
| 1/1
1/1
| –
–
|
| –
–
|
Примечание: Х из Х/Y при невыполнении условия cond и Y при невыполнения условия cond; Х из Z/Х/Y при невыполнении условия cond и Y при невыполнения условия cond; в МП 8085А вместо триггера INTE данные команды управляются флагом (триггером) IE; только для МП 8085А
|
| | | | | | |