Система команд МП КР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 | # # # |
| Команда | Описание операции | 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А
| ||||||
Дата добавления: 2015-08-01; просмотров: 1324;

+
r { Exclusive or register with accumulator}
A←A
r { Or register with accumulator}
A←A
A – r Z=1 при A=r, d8, M { Compare}
A – d8 CY=1 при A<r, d8, M {Compare immediate}
A – M(rp H)
{Complement accumulator}
CY ←
{Complement carry}
CY ← 1 { Setcarry}
SP ← SP – 1, M(SP) ← PCh, {Call}
SP ← SP – 1, M(SP) ←PCl; PC ← addr {Call
conditional}
DI
RIM