Оглавление


§ Таблица опкодов

Ниже представлена таблица всех опкодов, которые поддерживаются КР580ВМ80А (Аналог Intel 8080A). По сути это обедненный набор Z80 инструкции.
0123456789ABCDEF
0000NOP
01LXI
B,**
02STAX
B
03INX
B
04INR
B
05DCR
B
06MVI
B,*
07RLC
08
09DAD
B
0ALDAX
B
0BDCX
B
0CINR
C
0DDCR
C
0EMVI
C,*
0FRRC
1010
11LXI
D,**
12STAX
D
13INX
D
14INR
D
15DCR
D
16MVI
D,*
17RAL
18
19DAD
D
1ALDAX
D
1BDCX
D
1CINR
E
1DDCR
E
1EMVI
E,*
1FRAR
2020
21LXI
H,**
22SHLD
**
23INX
H
24INR
H
25DCR
H
26MVI
H,*
27DAA
28
29DAD
H
2ALHLD
**
2BDCX
H
2CINR
L
2DDCR
L
2EMVI
L,*
2FCMA
3030
31LXI
SP,**
32STA
**
33INX
SP
34INR
M
35DCR
M
36MVI
M,*
37STC
38
39DAD
SP
3ALDA
**
3BDCX
SP
3CINR
A
3DDCR
A
3EMVI
A,*
3FCMC
4040MOV
B,B
41MOV
B,C
42MOV
B,D
43MOV
B,E
44MOV
B,H
45MOV
B,L
46MOV
B,M
47MOV
B,A
48MOV
C,B
49MOV
C,C
4AMOV
C,D
4BMOV
C,E
4CMOV
C,H
4DMOV
C,L
4EMOV
C,M
4FMOV
C,A
5050MOV
D,B
51MOV
D,C
52MOV
D,D
53MOV
D,E
54MOV
D,H
55MOV
D,L
56MOV
D,M
57MOV
D,A
58MOV
E,B
59MOV
E,C
5AMOV
E,D
5BMOV
E,E
5CMOV
E,H
5DMOV
E,L
5EMOV
E,M
5FMOV
E,A
6060MOV
H,B
61MOV
H,C
62MOV
H,D
63MOV
H,E
64MOV
H,H
65MOV
H,L
66MOV
H,M
67MOV
H,A
68MOV
L,B
69MOV
L,C
6AMOV
L,D
6BMOV
L,E
6CMOV
L,H
6DMOV
L,L
6EMOV
L,M
6FMOV
L,A
7070MOV
M,B
71MOV
M,C
72MOV
M,D
73MOV
M,E
74MOV
M,H
75MOV
M,L
76HALT
77MOV
M,A
78MOV
A,B
79MOV
A,C
7AMOV
A,D
7BMOV
A,E
7CMOV
A,H
7DMOV
A,L
7EMOV
A,M
7FMOV
A,A
8080ADD
B
81ADD
C
82ADD
D
83ADD
E
84ADD
H
85ADD
L
86ADD
M
87ADD
A
88ADC
B
89ADC
C
8AADC
D
8BADC
E
8CADC
H
8DADC
L
8EADC
M
8FADC
A
9090SUB
B
91SUB
C
92SUB
D
93SUB
E
94SUB
H
95SUB
L
96SUB
M
97SUB
A
98SBB
B
99SBB
C
9ASBB
D
9BSBB
E
9CSBB
H
9DSBB
L
9ESBB
M
9FSBB
A
A0A0ANA
B
A1ANA
C
A2ANA
D
A3ANA
E
A4ANA
H
A5ANA
L
A6ANA
M
A7ANA
A
A8XRA
B
A9XRA
C
AAXRA
D
ABXRA
E
ACXRA
H
ADXRA
L
AEXRA
M
AFXRA
A
B0B0ORA
B
B1ORA
C
B2ORA
D
B3ORA
E
B4ORA
H
B5ORA
L
B6ORA
M
B7ORA
A
B8CMP
B
B9CMP
C
BACMP
D
BBCMP
E
BCCMP
H
BDCMP
L
BECMP
M
BFCMP
A
C0C0RNZ
C1POP
B
C2JNZ
**
C3JMP
**
C4CNZ
**
C5PUSH
B
C6ADI
*
C7RST
0
C8RZ
C9RET
CAJZ
**
CB
CCCZ
**
CDCALL
**
CEACI
*
CFRST
1
D0D0RNC
D1POP
D
D2JNC
**
D3OUT
N
D4CNC
**
D5PUSH
D
D6SUI
*
D7RST
2
D8RC
D9
DAJC
**
DBIN
N
DCCC
**
DD
DESBI
*
DFRST
3
E0E0RPO
E1POP
H
E2JPO
**
E3XTHL
E4CPO
**
E5PUSH
H
E6ANI
*
E7RST
4
E8RPE
E9PCHL
EAJPE
**
EBXCHG
ECCPE
**
ED
EEXRI
*
EFRST
5
F0F0RP
F1POP
PSW
F2JP
**
F3DI
F4CP
**
F5PUSH
PSW
F6ORI
*
F7RST
6
F8RM
F9SPHL
FAJM
**
FBEI
FCCM
**
FD
FECPI
*
FFRST
7

§ Краткое описание

Теперь перейдем к описанию кодов, которые здесь есть.
  • NOP — нет операции; 4T
  • LXI — загрузка 16-битного непосредственного значения в регистры BC, DE, HL или SP; 10T
  • STAX — сохранение регистра А в память по адресу либо BC, либо DE; 7T
  • INX, DCX — увеличить или уменьшить на единицу 16-битный регистр, флаги при этом не меняются; 5T
  • INR, DCR — увеличить или уменьшить на единицу 8-битный регистр с изменением флагов; 5/10T
  • MVI — поместить в регистр или в память (M) по адресу HL непосредственный операнд; 7/10T
  • DAD — сложить HL и 16-битный регистр, результат записать в HL; 10T
  • LDAX — наоборот, из памяти по адресу BC или DE записывается в регистр A; 7T
  • RLC — сдвиг A налево с заемом CF; 4T
  • RRC — сдвиг A направо с заемом CF; 4T
  • RAL — вращение A налево; 4T
  • RAR — вращение A направо; 4T
  • SHLD — загрузка HL в память (16 битный адрес); 16T
  • DAA — десятичная коррекция после сложения; 4T
  • LDHL — загрузка из памяти (16 битный адрес) в регистр HL; 16T
  • CMA — инверсия битов в регистре A; 4T
  • STA — сохранить A в памяти (16 бит); 13T
  • STC — установка флага CF=1; 4T
  • LDA — загрузка A из 16-битной памяти; 13T
  • CMC — инверсия флага CF; 4T
  • MOV — скопировать регистр или память, в другой регистр или память; 5/7T
  • HLT — остановка процессора; 4T
  • ADD — сложить аккумулятор с операндом (регистр или память); 4/7T
  • ADC — сложить аккумулятор с операндом (регистр или память) с заемом CF; 4/7T
  • SUB — вычесть аккумулятор с операндом (регистр или память); 4/7T
  • SBB — вычесть аккумулятор с операндом (регистр или память) с заемом CF; 4/7T
  • ANA — побитовое AND аккумулятора с операндом (регистр или память); 4/7T
  • XRA — побитовое XOR аккумулятора с операндом (регистр или память); 4/7T
  • ORA — побитовое OR аккумулятора с операндом (регистр или память); 4/7T
  • CMP — вычесть из аккумулятора, но результат не сохранять, только меняются флаги; 4/7T
  • PUSH — втолкнуть в стек BC,DE,HL или AF регистр; 11T
  • POP — вытолкнуть из стека и записать в BC,DE,HL или AF регистр; 11T
  • RNZ, RZ, RNC, RC, RPO, JPE, RP, RM — выполнить возврат из процедуры при достижении условия; 5/11T
  • JNZ, JZ, JNC, JC, JPO, JPE, JP, JM — переход по 16 битному адресу, при достижении условия, иначе пропуск; 10T
  • CNZ, CZ, CNC, CC, CPO, CPE, CP, CM — вызов процедуры по 16 битному адресу, при достижении условия, иначе пропуск; 11/17T
  • JMP — безусловный переход по 16 битному адресу; 10T
  • CALL — вызов подпрограммы; 17T
  • RET — выход из процедуры; 10T
  • RST — вызов обработчика прерывания; 11T
  • OUT — запись в порт аккумулятора; 10T
  • IN — чтение из порта в аккумулятор; 10T
  • ADI — сложить аккумулятор с непосредственным операндом; 7T
  • ACI — сложить аккумулятор с непосредственным операндом и заемом флага CF; 7T
  • SUI — вычесть из аккумулятора с непосредственный операнд; 7T
  • SBI — вычесть из аккумулятора с непосредственный операнд с заемом флага CF; 7T
  • ANI — побитовое AND аккумулятора с непосредственным операндом; 7T
  • XRI — побитовое XOR аккумулятора с непосредственным операндом; 7T
  • ORI — побитовое OR аккумулятора с непосредственным операндом; 7T
  • CPI — вычесть аккумулятор и непосредственным операнд, но результат не сохранять; 7T
  • XTHL — обменять вершину стека с HL; 18T
  • PCHL — перейти к адресу в HL; 5T
  • XCHG — обмен DE и HL; 4T
  • DI — запрет прерываний; 4T
  • EI — разрешение прерываний; 4T
  • SPHL — записать HL в SP; 5T