Code
Коды команд микропроцессора КР580ИК80А
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+-+
| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
+-+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+-+
|0|NOP |LXI |STAX|INX |INR |DCR |MVI |RLC | - |DAD |LDAX|DCX |INR |DCR |MVI |RRC |0|
| | |B,& | B | B | B | B |B,# | | | B | B | B | C | C |C,# | | |
+-+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+-+
|1| - |LXI |STAX|INX |INR |DCR |MVI |RAL | - |DAD |LDAX|DCX |INR |DCR |MVI |RAR |1|
| | |D,& | D | D | D | D |D,# | | | D | D | D | E | E |E,# | | |
+-+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+-+
|2| - |LXI |SHLD|INX |INR |DCR |MVI |DAA | - |DAD |LHLD|DCX |INR |DCR |MVI |CMA |2|
| | |H,& | * | H | H | H |H,# | | | H | * | H | L | L |L,# | | |
+-+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+-+
|3| - |LXI |STA |INX |INR |DCR |MVI |STC | - |DAD |LDA |DCX |INR |DCR |MVI |CMC |3|
| | |SP,&| * |SP | M | M |M,# | | |SP | * |SP | A | A |A,# | | |
+-+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+-+
|4|MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |4|
| |B,B |B,C |B,D |B,E |B,H |B,L |B,M |B,A |C,B |C,C |C,D |C,E |C,H |C,L |C,M |C,A | |
+-+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+-+
|5|MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |5|
| |D,B |D,C |D,D |D,E |D,H |D,L |D,M |D,A |E,B |E,C |E,D |E,E |E,H |E,L |E,M |E,A | |
+-+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+-+
|6|MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |6|
| |H,B |H,C |H,D |H,E |H,H |H,L |H,M |H,A |L,B |L,C |L,D |L,E |L,H |L,L |L,M |L,A | |
+-+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+-+
|7|MOV |MOV |MOV |MOV |MOV |MOV |HLT |MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |MOV |7|
| |M,B |M,C |M,D |M,E |M,H |M,L | |M,A |A,B |A,C |A,D |A,E |A,H |A,L |A,M |A,A | |
+-+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+-+
|8|ADD |ADD |ADD |ADD |ADD |ADD |ADD |ADD |ADC |ADC |ADC |ADC |ADC |ADC |ADC |ADC |8|
| | B | C | D | E | H | L | M | A | B | C | D | E | H | L | M | A | |
+-+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+-+
|9|SUB |SUB |SUB |SUB |SUB |SUB |SUB |SUB |SBB |SBB |SBB |SBB |SBB |SBB |SBB |SBB |9|
| | B | C | D | E | H | L | M | A | B | C | D | E | H | L | M | A | |
+-+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+-+
|A|ANA |ANA |ANA |ANA |ANA |ANA |ANA |ANA |XRA |XRA |XRA |XRA |XRA |XRA |XRA |XRA |A|
| | B | C | D | E | H | L | M | A | B | C | D | E | H | L | M | A | |
+-+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+-+
|B|ORA |ORA |ORA |ORA |ORA |ORA |ORA |ORA |CMP |CMP |CMP |CMP |CMP |CMP |CMP |CMP |B|
| | B | C | D | E | H | L | M | A | B | C | D | E | H | L | M | A | |
+-+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+-+
|C|RNZ |POP |JNZ |JMP |CNZ |PUSH|ADI |RST | RZ |RET | JZ | - | CZ |CALL|ACI |RST |C|
| | | B | * | * | * | B | # | 0 | | | * | | * | * | # | 1 | |
+-+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+-+
|D|RNC |POP |JNC |OUT |CNC |PUSH|SUI |RST | RC | - | JC | IN | CC | - |SBI |RST |D|
| | | D | * | N | * | D | # | 2 | | | * | N | * | | # | 3 | |
+-+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+-+
|E|RPO |POP |JPO |XTHL|CPO |PUSH|ANI |RST |RPE |PCHL|JPE |XCHG|CPE | - |XRI |RST |E|
| | | H | * | | * | H | # | 4 | | | * | | * | | # | 5 | |
+-+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+-+
|F| RP |POP | JP | DI | CP |PUSH|ORI |RST | RM |SPHL| JM | EI | CM | - |CPI |RST |F|
| | |PSW | * | | * |PSW | # | 6 | | | * | | * | | # | 7 | |
+-+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+-+
| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
+-+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+-+
N - номер порта ввода/вывода
& - двухбайтовый операнд - D16
* - двухбайтовый операнд - ADR
# - однобайтовый операнд - D8
Формат регистра F
+----+----+----+----+----+----+----+----+
| D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
+----+----+----+----+----+----+----+----+
| S | Z | 0 | AC | 0 | P | 1 | C |
+----+----+----+----+----+----+----+----+
Примеры:
Команда STAX D имеет код операции 12h.
Код операции CAh соответствует команде JZ ADR.
Система команд микропроцессора КР580ИК80А
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Однобайтовые пересылки
MOV R1, R ;[5/7] R --> R1
MVI R, D8 ;[7/1] D8 --> R
STAX YZ ;[7] A --> M(YZ)
LDAX YZ ;[7] M(YZ) --> A
STA ADR ;[13] A --> M(ADR)
LDA ADR ;[13] M(ADR) --> A
Двухбайтовые пересылки
LXI YZ, D16 ;[10] D16 --> YZ
SHLD ADR ;[16] H --> M(ADR+1), L --> M(ADR)
LHLD ADR ;[16] M(ADR) --> L, M(ADR+1) --> H
PUSH YZ ;[11] YZ --> M(SP-1) M(SP-2), SP-2 --> SP
POP YZ ;[10] M(SP) M(SP+1) --> YZ, SP+2 --> SP
(POP' PSW)
SPHL ;[5] HL --> SP
Обмен байтами
XCHG ;[4] HL <--> DE
XTHL ;[18] H <--> M(SP+1), L <--> M(SP)
Команды ввода и вывода
IN N ;[10] (N) --> A
OUT N ;[10] A --> (N)
16-битовые операции
DAD'' YZ ;[10] HL+YZ --> HL
Операции сравнения
CPI' D8 ;[7] установка признаков в соотв. с A-D8
CMP' R ;[4/7] установка признаков в соотв. с A-R
Арифметические и логические операции с одним операндом
CMC'' ;[4] not C --> C
STC'' ;[4] 1 --> C
CMA ;[4] not A --> A
DAA ;[4] десятичная коррекция
INR''' R ;[5/10] R+1 -->R
DCR''' R ;[5/10] R-1 -->R
INX YZ ;[5] YZ+1 -->YZ
DCX YZ ;[5] YZ-1 --> YZ
Арифметические и логические операции с двумя операндами
8-битовые операции
ADD' R ;[4/7] A+R --> A
ADC' R ;[4/7] A+R+C --> A
SUB' R ;[4/7] A-R -->A
SBB' R ;[4/7] A-R-C --> A
ANA' R ;[4/7] A and R --> A
ORA' R ;[4/7] A or R --> A
XRA' R ;[4/7] A xor R --> A
ADI' D8 ;[7] A+D8 --> A
ACI' D8 ;[7] A+D8+C --> A
SUI' D8 ;[7] A-D8 --> A
SBI' D8 ;[7] A-D8-C --> A
ANI' D8 ;[7] A and D8 --> A
ORI' D8 ;[7] A or D8 --> A
XRI' D8 ;[7] A xor D8 --> A
Команды сдвига содержимого аккумулятора
RLC'' ;[4] сдвиг влево
RAL'' ;[4] сдвиг влево через бит признака C
RRC'' ;[4] сдвиг вправо
RAR'' ;[4] сдвиг вправо через бит признака C
Команды передачи управления
PCHL ;[5] HL --> PC
JMP ADR ;[10] ADR --> PC
J{CON} ADR ;[10] ADR --> PC
Команды вызова и возврата из подпрограммы
CALL ADR ;[17] PC --> M(SP-1) M(SP-2), ADR --> PC
C{CON} ADR ;[11(17)] PC --> M(SP-1) M(SP-2), ADR --> PC
RST X ;[11] PC -->M(SP-1) M(SP-2), ADD --> PC,
; где X = 0, 1,..., 7
; ADD = 0h, 8h, 10h, 18h, 20h, 28h, 30h, 38h
RET ;[10] M(SP) M(SP+1) --> PC
R{CON} ;[5(10)] SP+2 --> SP
Специальные команды
EI ;[4] разрешение прерывания
DI ;[4] запрещение прерывания
HLT ;[7] останов
NOP ;[4] холостая операция
Условные обозначения
' - команда оказывает воздействие на все признаки
'' - команда оказывает воздействие на признак C
''' - команда оказывает воздействие на все признаки, кроме признака C
R, R1 - содержимое регистров A, B, C, D, E, H, L или ячейки памяти M(HL).
большее число тактов команды соответствует работе с операндом,
хранящимся в памяти
YZ - содержимое регистровой пары BC, DE, HL или регистра SP
YZ - содержимое регистровой пары BC или DE
YZ - содержимое регистровой пары BC, DE, HL или PSW
(YZ в мнемонике соответствующих команд заменяется на B, D, H, SP или PSW)
SP - содержимое указателя стека перед выполнением команды
D8 - 8-разрядный операнд (содержимое второго байта двухбайтовой команды)
(N) - содержимое порта ввода или вывода с номером N (N=0,1,...,255)
D16 - 16-разрядный операнд (содержимое второго и третьего байта команды)
ADR - 16-разрядный адрес в трехбайтовой команде
M(X) - содержимое ячейки памяти (адрес ячейки X указан в скобках)
{CON} - часть мнемоники команды, определяющая условие передачи управления,
вызова и возврата из подпрограммы ({CON} в мнемонике заменяется на
NZ, Z, NC, C, PO, PE, P или M). В скобках указано число тактов
команды при выполнении условия передачи управления