Система команд МП КР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; просмотров: 1246;