Мнемоника | Описание команды | Код команды | Длина Коман- ды, байт | Число Тактов | Флаги условий |
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 {Move immediate} M(rp H) ← d8 rp ← d16, rp=B,D,H или SP {Load immediate} | 2/2 2/3 3/3 | | | - - - |
LDA addr STA | A ← M(addr) {Load direct accumulator} M(addr) ←A {Store direct accumulator} | 3/4 3/4 | | | - - |
LHLD addr SHLD addr | L ←M(addr), H ← M(addr+1) {Load H and L direct} M(addr) ←L, M(addr+1) ← H {Store H and L direct} | 3/5 3/5 | | | - - |
LDAX rp STAX rp | A ← M(rp), rp=B или D {Loadaccumulator indirect} M(rp) ←A, rp=B или D {Store accumulator 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 {Add immediate} A←A + M(rp H) A←A + r + CY {Add with carry} A←A + M(rp H) + CY A←A + d8 + CY {Add with carry immediate} | 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 { Subtract } A←A – d8 { Subtract immediate} A←A – M(rp H) A←A – r – CY { Subtract with borrow} A← A – d8 – CY A← A – M(rp H) – CY { Subtract immediate} | 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 {Increment} M(rp H) ← M(rp H) + 1 r ← r – 1 {Decrement} M(rp H) ←M(rp H) – 1 rp ← rp + 1, rp=B, D, H или SP {Increment rp} rp ← rp – 1, rp=B, D, H или SP {Decrement 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 { And register with accumulator} A←A & d8 { And immediate with accumulator} A←A & M(rp H) { And memory with accumulator} | 1/1 2/2 1/2 | | | * * * |
XRA r XRI d8 XRA M | A←A r { Exclusive or register with accumulator} A←A d8 { Exclusive orimmediate with accumulator} A←A M(rp H) { Exclusive or memory with accumulator} | 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 accumulator} A←A d8 { Orimmediate with accumulator} A←A M(rp H) { Or memory with accumulator} A – r Z=1 при A=r, d8, M { Compare} A – d8 CY=1 при A<r, d8, M {Compare immediate} A – M(rp H) | 1/1 2/2 1/2 1/1 2/2 1/2 | | | # # # + + + |
RLC RRC RAL RAR | | {Rotate accumulator left in carry} {Rotate accumulator right in carry} {Rotate accumulator left through carry} {Rotate accumulator right through carry} | 1/1 1/1 1/1 1/1 | | | |
CMA CMC STC | A ← {Complement accumulator} CY ← {Complement carry} CY ← 1 { Setcarry} | 1/1 1/1 1/1 | | | – |
Группа команд передачи управления |
JMP addr Jcond addr PCHL | PC ← addr {Jump} PC ← addr {Jump conditional} PC ← HL { Load Program Counter with H and L} | 3/3 3/3 1/1 | | 7/10 | – – – |
CALL addr Ccond addr | SP ← SP – 1, M(SP) ← PCh, {Call} SP ← SP – 1, M(SP) ←PCl; PC ← addr {Call conditional} | 3/5 3/3/5 | 11/17 | 9/18 | – – |
RET Rcond | PCl ← M(SP) , SP ← SP + 1, {Return} PCh← M(SP), SP ← SP + 1 {Return conditional} | 1/3 1/1/3 | 5/11 | 6/12 | – – |
RST n | SP ← SP – 1, M(SP) ← PCh, {Restart} SP ← SP – 1, M(SP) ←PCl; 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) {Input} ПО(port) ←A {Output} | 2/3 2/3 | | | – – |
EI DI | INTE = 1 после следующей команды {Enable Interrupts} INTE = 0 после данной команды {Disable Interrupts} | 1/1 1/1 | | | – – |
HLT NOP | Остановка процессора; PC ← PC + 1 {Halt} Пустая операция {No-operation} | 1/1 1/1 | | | – – |
SIM RIM | Установка маски прерываний {Set Interrupt Mask} Чтение маски прерываний {Read Interrupt Mask} | 1/1 1/1 | – – | | – – |
Примечание: Х из Х/Y при невыполнении условия cond и Y при невыполнения условия cond; Х из Z/Х/Y при невыполнении условия cond и Y при невыполнения условия cond; в МП 8085А вместо триггера INTE данные команды управляются флагом (триггером) IE; только для МП 8085А |
| | | | | | |