Оглавление
§ Таблица опкодов
Ниже представлена таблица всех опкодов, которые поддерживаются КР580ВМ80А (Аналог Intel 8080A). По сути это обедненный набор Z80 инструкции.0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
00 | 00NOP | 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 |
10 | 10 | 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 |
20 | 20 | 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 |
30 | 30 | 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 |
40 | 40MOV 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 |
50 | 50MOV 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 |
60 | 60MOV 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 |
70 | 70MOV 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 |
80 | 80ADD 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 |
90 | 90SUB 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 |
A0 | A0ANA 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 |
B0 | B0ORA 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 |
C0 | C0RNZ | C1POP B | C2JNZ ** | C3JMP ** | C4CNZ ** | C5PUSH B | C6ADI * | C7RST 0 | C8RZ | C9RET | CAJZ ** | CB | CCCZ ** | CDCALL ** | CEACI * | CFRST 1 |
D0 | D0RNC | D1POP D | D2JNC ** | D3OUT N | D4CNC ** | D5PUSH D | D6SUI * | D7RST 2 | D8RC | D9 | DAJC ** | DBIN N | DCCC ** | DD | DESBI * | DFRST 3 |
E0 | E0RPO | E1POP H | E2JPO ** | E3XTHL | E4CPO ** | E5PUSH H | E6ANI * | E7RST 4 | E8RPE | E9PCHL | EAJPE ** | EBXCHG | ECCPE ** | ED | EEXRI * | EFRST 5 |
F0 | F0RP | 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