Система команд МП КР580ИК80А
| Мнемоника | Описание команды | Код команды | Длина Коман- ды, байт | Число Тактов | Флаги условий | |||||||
| 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 | Останов | - - - - - |
Приложение 7
| Команда | Описание операции | 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 | # # # |
+
r { Exclusive or register with accumulator}
A←A