Это старая версия документа!
В приложении приводится полный список команд микропроцессора Z80 фирмы Zilog. Дана мнемоника команд Zilog и соответствующая мнемоника для микропроцессора Intel 8080 фирмы Intel, описано действие команд, время выполнения команд.
Принятые сокращения и обозначения
Сокращение | Описание |
---|---|
A | регистр А |
I | регистр I контроля вектора прерываний |
R | регистр памяти R |
r | регистр A , B , C , D , E , H или L |
r1 | |
HL | регистровая пара HL |
● | состояние флага не изменяется |
0 | флаг сбрасывается в 0 |
1 | флаг устанавливается в 1 |
X | флаг не определён |
? | состояние флага зависит от результата операции |
V | если было переполнение — 1, нет — 0 |
P | если количество единичных битов результата чётно (или ноль) — 1, нечётно — 0 |
d | смещение |
n | 8–ми битная константа |
nn | 16–ти битная константа или адрес |
IFF | триггер разрешения прерывания |
dd | регистр BC , DE , HL , SP |
регистр BC , DE , HL , AF |
|
pp | регистр BC , DE , IX , SP |
rr | регистр BC , DE , IY , SP |
b | бит номер 0, 1, 2, 3, 4, 5, 6 или 7 |
cc | условие NZ , Z , NC , C , PO ,PE , P или M |
p | адрес рестарта 0, 8h, 10h, 18h, 20h, 28h, 30h или 38h |
e | смещение при относительной адресации |
s/b | указывает на бит b ячейки s |
CY | триггер (флаг) переноса C |
() | косвенная адресация по содержимому операнда |
ЧЦ | число циклов |
ЧТ | число тактов |
Дл | длина команды в байтах |
Это наиболее многочисленная группа команд. С их помощью производится обмен данными между внутренними регистрами микропроцессора, а также между внутренними регистрами и ячейками памяти.
┌───────────┬─────────────┬───────────┬───┬────┬────┬─────────┐ │ │Символическое│ Флаги │ │ │ │ Intel │ │ Мнемокод │ описание ├─┬─┬─┬─┬─┬─┤ Дл│ ЧЦ │ ЧТ │ 8080 │ │ │ │C│Z│V│S│N│H│ │ │ │ │ ├───────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼─────────┤ │ LD r,r1 │ r <= r1 │●│●│●│●│●│●│ 1 │ 1 │ 4 │ MOV R,R'│ ├───────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼─────────┤ │ LD A,I │ A<=I,PV=IFF│●│?│?│?│0│0│ 2 │ 2 │ 9 │ ─ │ ├───────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼─────────┤ │ LD A,R │ A <= R │●│●│●│●│●│●│ 2 │ 2 │ 9 │ ─ │ ├───────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼─────────┤ │ LD I,A │ I <= A │●│●│●│●│●│●│ 2 │ 2 │ 9 │ ─ │ ├───────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼─────────┤ │ LD R,A │ R <= A │●│●│●│●│●│●│ 2 │ 2 │ 9 │ ─ │ ├───────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼─────────┤ │ LD r,n │ r <= n │●│●│●│●│●│●│ 2 │ 2 │ 7 │ MVI R,N │ ├───────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼─────────┤ │ LD r,(HL) │ r <= (HL) │●│●│●│●│●│●│ 1 │ 2 │ 7 │ MOV R,M │ ├───────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼─────────┤ │LD r,(IX+d)│ r <= (IX+d)│●│●│●│●│●│●│ 3 │ 5 │ 19 │ ─ │ ├───────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼─────────┤ │LD r,(IY+d)│ r <= (IY+d)│●│●│●│●│●│●│ 3 │ 5 │ 19 │ ─ │ ├───────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼─────────┤ │ LD A,(BC) │ A <= (BC) │●│●│●│●│●│●│ 1 │ 2 │ 7 │ LDAX B │ ├───────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼─────────┤ │ LD A,(DE) │ A <= (DE) │●│●│●│●│●│●│ 1 │ 2 │ 7 │ LDAX D │ ├───────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼─────────┤ │ LD A,(nn) │ A <= (nn) │●│●│●│●│●│●│ 3 │ 4 │ 13 │ LDA NN │ ├───────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼─────────┤ │ LD (HL),r │ (HL) <= r │●│●│●│●│●│●│ 1 │ 2 │ 7 │ MOV M,R │ ├───────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼─────────┤ │LD (IX+d),r│ (IX+d) <= r│●│●│●│●│●│●│ 3 │ 5 │ 19 │ ─ │ ├───────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼─────────┤ │LD (IY+d),r│ (IY+d) <= r│●│●│●│●│●│●│ 3 │ 5 │ 19 │ ─ │ ├───────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼─────────┤ │ LD (BC),A │ (BC) <= A │●│●│●│●│●│●│ 1 │ 2 │ 7 │ STAX B │ ├───────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼─────────┤ │ LD (DE),A │ (DE) <= A │●│●│●│●│●│●│ 1 │ 2 │ 7 │ STAX D │ ├───────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼─────────┤ │ LD (nn),A │ (nn) <= A │●│●│●│●│●│●│ 3 │ 4 │ 13 │ STA NN │ ├───────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼─────────┤ │ LD (HL),n │ (HL) <= n │●│●│●│●│●│●│ 2 │ 3 │ 10 │ MVI M,N │ ├───────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼─────────┤ │LD (IX+d),n│ (IX+d)<=n │●│●│●│●│●│●│ 4 │ 5 │ 19 │ ─ │ ├───────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼─────────┤ │LD (IY+d),n│ (IY+d)<=n │●│●│●│●│●│●│ 4 │ 5 │ 9 │ ─ │ └───────────┴─────────────┴─┴─┴─┴─┴─┴─┴───┴────┴────┴─────────┘
┌──────────┬─────────────┬───────────┬───┬────┬────┬──────────┐ │ │Символическое│ Флаги │ │ │ │ Intel │ │ Мнемокод │ описание ├─┬─┬─┬─┬─┬─┤ Дл│ ЧЦ │ ЧТ │ 8080 │ │ │ │C│Z│V│S│N│H│ │ │ │ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │ LD dd,nn │ dd<=nn │●│●│●│●│●│●│ 3 │ 3 │ 10 │ LXI DD,NN│ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │ LD IX,nn │ IX<=nn │●│●│●│●│●│●│ 4 │ 4 │ 14 │ ─ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │ LD IY,nn │ IY<=nn │●│●│●│●│●│●│ 4 │ 4 │ 14 │ ─ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │LD dd,(nn)│ dd<=(nn) │●│●│●│●│●│●│ 4 │ 6 │ 20 │ ─ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │LD HL,(nn)│ HL<=(nn) │●│●│●│●│●│●│ 3 │ 5 │ 16 │ LHLD NN │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │LD IX,(nn)│ IX<=(nn) │●│●│●│●│●│●│ 4 │ 6 │ 20 │ ─ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │LD IY,(nn)│ IY<=(nn) │●│●│●│●│●│●│ 4 │ 6 │ 20 │ ─ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │LD (nn),HL│ (nn)<=HL │●│●│●│●│●│●│ 3 │ 5 │ 16 │ SHLD NN │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │LD (nn),dd│ (nn)<=dd │●│●│●│●│●│●│ 4 │ 6 │ 20 │ ─ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │LD (nn),IX│ (nn)<=IX │●│●│●│●│●│●│ 4 │ 6 │ 20 │ ─ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │LD (nn),IY│ (nn)<=IY │●│●┤●│●│●│●│ 4 │ 6 │ 20 │ ─ │ │──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │ LD SP,HL │ SP<=HL │●│●│●│●│●│●│ 1 │ 1 │ 6 │ SPHL │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │ LD SP,IX │ SP<=IX │●│●│●│●│●│●│ 2 │ 2 │ 10 │ ─ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │ LD SP,IY │ SP<=IY │●│●│●│●│●│●│ 2 │ 2 │ 10 │ ─ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │ PUSH qq │ SP<= SP-2 │●│●│●│●│●│●│ 1 │ 3 │ 11 │ PUSH PSW,│ │ │ (SP) <= qq │ │ │ │ │ │ │ │ │ │ B,D,H │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │ PUSH IX │ SP<= SP-2 │●│●│●│●│●│●│ 2 │ 4 │ 15 │ ─ │ │ │ (SP) <= IX │ │ │ │ │ │ │ │ │ │ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │ PUSH IY │ SP<= SP-2 │●│●│●│●│●│●│ 2 │ 4 │ 15 │ ─ │ │ │ (SP) <= IY │ │ │ │ │ │ │ │ │ │ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │ POP qq │ qq<=(SP) │●│●│●│●│●│●│ 1 │ 3 │ 10 │ POP PSW, │ │ │ SP <= SP+2 │?│?│?│?│?│?│ │ │ │ B,D,H │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │ POP IX │ IX<=(SP) │●│●│●│●│●│●│ 2 │ 4 │ 14 │ ─ │ │ │ SP <= SP+2 │ │ │ │ │ │ │ │ │ │ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │ POP IY │ IY<=(SP) │●│●│●│●│●│●│ 2 │ 4 │ 14 │ ─ │ │ │ SP <= SP+2 │ │ │ │ │ │ │ │ │ │ │ └──────────┴─────────────┴─┴─┴─┴─┴─┴─┴───┴────┴────┴──────────┘
Команда POP AF делает содержимое регистра признаков AF равным значению регистра F из стека.
┌────────────┬──────────────┬───────────┬───┬───┬────┬──────────┐ │ │ Символич. │ Флаги │ │ │ │ Intel │ │ Мнемокод │ описание ├─┬─┬─┬─┬─┬─┤ ДЛ│ ЧЦ│ ЧТ │ 8080 │ │ │ │C│Z│V│S│N│H│ │ │ │ │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │INC r │ r <= r+1 │●│?│V│?│0│?│ 1 │ 1 │ 4 │ INR R │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │INC (HL) │(HL)<=(HL)+1 │●│?│V│?│0│?│ 1 │ 3 │ 11 │ INR M │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │INC (IX+d) │(IX+d) <= │●│?│V│?│0│?│ 3 │ 6 │ 23 │ ─ │ │ │ (IX+d)+1 │ │ │ │ │ │ │ │ │ │ │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │INC (IY+d) │(IY+d) <= │●│?│V│?│0│?│ 3 │ 6 │ 23 │ ─ │ │ │ (IY+d)+1 │ │ │ │ │ │ │ │ │ │ │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │DEC r │ r <= r-1 │●│?│V│?│1│?│ 1 │ 1 │ 4 │ DEC R │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │DEC (HL) │(HL)<=(HL)-1 │●│?│V│?│1│?│ 1 │ 3 │ 11 │ DEC M │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │DEC (IX+d) │(IX+d) <= │●│?│V│?│1│?│ 3 │ 6 │ 23 │ ─ │ │ │ (IX+d)-1 │ │ │ │ │ │ │ │ │ │ │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │DEC (IY+d) │(IY+d) <= │●│?│V│?│1│?│ 3 │ 6 │ 23 │ ─ │ │ │ (IY+d)-1 │ │ │ │ │ │ │ │ │ │ │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │ADD A,r │ A<=A+r │?│?│V│?│0│?│ 1 │ 1 │ 4 │ ADD R │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │ADD A,n │ A<=A+n │?│?│V│?│0│?│ 2 │ 2 │ 7 │ ADI N │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │ADD A,(HL) │ A<=A+(HL) │?│?│V│?│0│?│ 1 │ 2 │ 7 │ ADD M │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │ADD A,(IX+d)│A<=A+(IX+d) │?│?│V│?│0│?│ 3 │ 5 │ 19 │ ─ │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │ADD A,(IY+d)│A<=A+(IY+d) │?│?│V│?│0│?│ 3 │ 5 │ 19 │ ─ │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │ADC A,r │A<=A+r+CY │?│?│V│?│0│?│ 1 │ 1 │ 4 │ ADC R │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │ADC A,n │A<=A+n+CY │?│?│V│?│0│?│ 2 │ 2 │ 7 │ ACI N │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │ADC A,(HL) │A<=A+(HL)+CY │?│?│V│?│0│?│ 1 │ 2 │ 7 │ ADC M │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │ADC A,(IX+d)│A<=A+(IX+d)+CY│?│?│V│?│0│?│ 3 │ 5 │ 19 │ ─ │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │ADC A,(IY+d)│A<=A+(IY+d)+CY│?│?│V│?│0│?│ 3 │ 5 │ 19 │ ─ │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │SUB r │A<=A-r │?│?│V│?│1│?│ 1 │ 1 │ 4 │ SUB R │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │SUB n │A<=A-n │?│?│V│?│1│?│ 2 │ 2 │ 7 │ SUI N │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │SUB A,(HL) │A <= A-(HL) │?│?│V│?│1│?│ 1 │ 2 │ 7 │ SUB M │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │SUB A,(IX+d)│A <= A-(IX+d) │?│?│V│?│1│?│ 3 │ 5 │ 19 │ ─ │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │SUB A,(IY+d)│A <= A-(IY+d) │?│?│V│?│1│?│ 3 │ 5 │ 19 │ ─ │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │SBC A,r │A<=A-r-CY │?│?│V│?│1│?│ 1 │ 1 │ 4 │ SBB R │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │SBC A,n │A<=A-n-CY │?│?│V│?│1│?│ 2 │ 2 │ 7 │ SBI N │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │SBC A,(HL) │A<=A-(HL)-CY │?│?│V│?│1│?│ 1 │ 2 │ 7 │ SBB M │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │SBC A,(IX+d)│A<=A-(IX+d)-CY│?│?│V│?│1│?│ 3 │ 5 │ 19 │ ─ │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │SBC A,(IY+d)│A<=A-(IY+d)-CY│?│?│V│?│1│?│ 3 │ 5 │ 19 │ ─ │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │ NEG │ A=0-A │?│?│V│?│1│?│ 2 │ 2 │ 8 │ ─ │ ├────────────┼──────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────────┤ │ DAA │ Десятичная │?│?│P│?│●│?│ 1 │ 1 │ 4 │ DAA │ │ │ коррекция │ │ │ │ │ │ │ │ │ │ │ └────────────┴──────────────┴─┴─┴─┴─┴─┴─┴───┴───┴────┴──────────┘
Эта группа команд позволяет производить обмен данными между регистровыми парами, содержимым стека и регистровой парой; производить смену текущего набора регистров.
┌──────────┬─────────────┬───────────┬───┬────┬────┬──────────┐ │ │Символическое│ Флаги │ │ │ │ Intel │ │ Мнемокод │ описание ├─┬─┬─┬─┬─┬─┤ ДЛ│ ЧЦ │ ЧТ │ 8080 │ │ │ │C│Z│V│S│N│H│ │ │ │ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │ EX DE,HL │ DE <=> HL │●│●│●│●│●│●│ 1 │ 1 │ 4 │ XCHG │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │ EX AF,AF'│ AF <=> AF' │?│?│?│?│?│?│ 1 │ 1 │ 4 │ ─ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │ │ BC <=> BC' │●│●│●│●│●│●│ │ │ │ │ │ EXX │ DE <=> DE' │ │ │ │ │ │ │ 1 │ 1 │ 4 │ ─ │ │ │ HL <=> HL' │ │ │ │ │ │ │ │ │ │ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │EX (SP),HL│ H <=> (SP+1)│●│●│●│●│●│●│ 1 │ 5 │ 19 │ XTHL │ │ │ L <=> (SP) │ │ │ │ │ │ │ │ │ │ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │EX (SP),IY│ IY <=> (SP) │●│●│●│●│●│●│ 2 │ 6 │ 23 │ ─ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │EX (SP),IX│ IX <=> (SP) │●│●│●│●│●│●│ 2 │ 6 │ 23 │ ─ │ └──────────┴─────────────┴─┴─┴─┴─┴─┴─┴───┴────┴────┴──────────┘
┌──────────┬─────────────┬───────────┬───┬────┬────┬──────────┐ │ │Символическое│ Флаги │ │ │ │ Intel │ │ Мнемокод │ описание ├─┬─┬─┬─┬─┬─┤ Дл│ ЧЦ │ ЧТ │ 8080 │ │ │ │C│Z│V│S│N│H│ │ │ │ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │ INC dd │ dd<=dd+1 │●│●│●│●│●│●│ 1 │ 1 │ 6 │ INX DD │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │ INC IX │ IX<=IX+1 │●│●│●│●│●│●│ 2 │ 2 │ 10 │ ─ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │ INC IY │ IY<=IY+1 │●│●│●│●│●│●│ 2 │ 2 │ 10 │ ─ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │ DEC dd │ dd<=dd-1 │●│●│●│●│●│●│ 1 │ 1 │ 6 │ DCX DD │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │ DEC IX │ IX<=IX-1 │●│●│●│●│●│●│ 2 │ 2 │ 10 │ ─ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │ DEC IY │ IY<=IY-1 │●│●│●│●│●│●│ 2 │ 2 │ 10 │ ─ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │ ADD HL,dd│ HL<=HL+dd │?│●│●│●│0│X│ 1 │ 3 │ 11 │ DAD DD │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │ ADC HL,dd│ HL<=HL+dd+CY│?│?│V│?│0│X│ 2 │ 4 │ 15 │ ─ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │ SBC HL,dd│ HL<=HL-dd-CY│?│?│V│?│1│X│ 2 │ 4 │ 15 │ ─ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │ ADD IX,pp│ IX<=IX+pp │?│●│●│●│0│X│ 2 │ 4 │ 15 │ ─ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼────┼────┼──────────┤ │ ADD IY,rr│ IY<=IY+rr │?│●│●│●│0│X│ 2 │ 4 │ 15 │ ─ │ └──────────┴─────────────┴─┴─┴─┴─┴─┴─┴───┴────┴───────────────┘
┌──────────┬─────────────┬───────────┬───┬───┬────┬──────┐ │ │Символическое│ Флаги │ │ │ │Intel │ │ Мнемокод │ описание ├─┬─┬─┬─┬─┬─┤ Дл│ЧЦ │ ЧТ │ 8080 │ │ │ │C│Z│V│S│N│H│ │ │ │ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────┤ │AND r │ A <=A & r │0│?│P│?│0│1│ 1 │ 1 │ 4 │ ANA R│ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────┤ │AND n │ A <=A & n │0│?│P│?│0│1│ 2 │ 2 │ 7 │ ANI N│ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────┤ │AND (HL) │ A <=A & (HL)│0│?│P│?│0│1│ 1 │ 2 │ 7 │ ANA M│ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────┤ │AND (IX+d)│ A<=A &(IX+d)│0│?│P│?│0│1│ 3 │ 5 │ 19 │ - │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────┤ │AND (IY+d)│ A<=A &(IY+d)│0│?│P│?│0│1│ 3 │ 5 │ 19 │ - │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────┤ │OR r │ A <=A V r │0│?│P│?│0│0│ 1 │ 1 │ 4 │ ORA R│ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────┤ │OR n │ A <=A V r │0│?│P│?│0│0│ 2 │ 2 │ 7 │ ORI N│ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────┤ │OR (HL) │ A <=A V (HL)│0│?│P│?│0│0│ 1 │ 2 │ 7 │ ORA M│ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────┤ │OR (IX+d) │ A<=A V(IX+d)│0│?│P│?│0│0│ 3 │ 5 │ 19 │ - │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────┤ │OR (IY+d) │ A<=A V(IY+d)│0│?│P│?│0│0│ 3 │ 5 │ 19 │ - │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────┤ │XOR r │ A <= A × r │0│?│P│?│0│0│ 1 │ 1 │ 4 │ XRA R│ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────┤ │XOR n │ A <= A × n │0│?│P│?│0│0│ 2 │ 2 │ 7 │ XRI N│ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────┤ │XOR (HL) │ A <= A ×(HL)│0│?│P│?│0│0│ 1 │ 2 │ 7 │ XRA M│ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────┤ │XOR (IX+d)│ A<=A ×(IX+d)│0│?│P│?│0│0│ 3 │ 5 │ 19 │ - │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────┤ │XOR (IY+d)│ A<=A ×(IY+d)│0│?│P│?│0│0│ 3 │ 5 │ 19 │ - │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────┤ │CP r │ A ? r │?│?│V│?│1│?│ 1 │ 1 │ 4 │ CPM R│ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────┤ │CP n │ A ? n │?│?│V│?│1│?│ 2 │ 2 │ 7 │ CPI N│ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────┤ │CP (HL) │ A ? (HL) │?│?│V│?│1│?│ 1 │ 2 │ 7 │ CPM M│ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────┤ │CP (IX+d) │ A ? (IX+d) │?│?│V│?│1│?│ 3 │ 5 │ 19 │ - │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────┤ │CP (IY+d) │ A ? (IY+d) │?│?│V│?│1│?│ 3 │ 5 │ 19 │ - │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────┤ │CPL │ Инверсия би-│●│●│●│●│1│1│ 1 │ 1 │ 4 │ CMA │ │ │ тов аккумул.│ │ │ │ │ │ │ │ │ │ │ │ │ 0 <=> 1 │ │ │ │ │ │ │ │ │ │ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────┤ │CCF │Инвертировать│?│●│●│●│0│0│ 1 │ 1 │ 4 │ CMC │ │ │ флаг C │ │ │ │ │ │ │ │ │ │ │ ├──────────┼─────────────┼─┼─┼─┼─┼─┼─┼───┼───┼────┼──────┤ │SCF │ Установка C │1│●│●│●│0│0│ 1 │ 1 │ 4 │ STC │ └──────────┴─────────────┴─┴─┴─┴─┴─┴─┴───┴───┴────┴──────┘
Мнемокод | Символическое описание | Флаги | Дл | ЧЦ | ЧТ | Intel 8080 | |||||
---|---|---|---|---|---|---|---|---|---|---|---|
C | Z | V | S | N | H | ||||||
BIT b,r | 0=r/b ? | ● | ? | X | X | 0 | 1 | 2 | 2 | 8 | ─ |
BIT b,(HL) | 0=(HL)/b ? | ● | ? | X | X | 0 | 1 | 2 | 3 | 12 | ─ |
BIT b,(IX+d) | 0=(IX+d)/b? | ● | ? | X | X | 0 | 1 | 4 | 5 | 20 | ─ |
BIT b,(IY+d) | 0=(IY+d)/b? | ● | ? | X | X | 0 | 1 | 4 | 5 | 20 | ─ |
SET b,r | r/b⇐1 | ● | ● | ● | ● | ● | ● | 2 | 2 | 8 | ─ |
SET b,(HL) | (HL)/b⇐1 | ● | ● | ● | ● | ● | ● | 2 | 4 | 15 | ─ |
SET b,(IX+d) | (IX+d)/b⇐1 | ● | ● | ● | ● | ● | ● | 4 | 6 | 23 | ─ |
SET b,(IY+d) | (IY+d)/b⇐1 | ● | ● | ● | ● | ● | ● | 4 | 6 | 23 | ─ |
RES b,r | r/b⇐0 | ● | ● | ● | ● | ● | ● | 2 | 2 | 8 | ─ |
RES b,(HL) | (HL)/b⇐0 | ● | ● | ● | ● | ● | ● | 2 | 4 | 15 | ─ |
RES b,(IX+d) | (IX+d)/b⇐0 | ● | ● | ● | ● | ● | ● | 4 | 6 | 23 | ─ |
RES b,(IY+d) | (IY+d)/b⇐0 | ● | ● | ● | ● | ● | ● | 4 | 6 | 23 | ─ |
Микропроцессор Intel 8080 имеет всего одну команду ввода и одну команду вывода. Это соответственно IN
и OUT
. По команде OUT
содержимое аккумулятора записывается в порт, номер которого указывается непосредственно в команде. Команда IN
позволяет ввести байт из порта ввода/вывода и занести его в аккумулятор.
К системе команд микропроцессора Z80 добавлены команды ввода/вывода блока (как пошаговые, так и автоматические), и ввода/вывода в порт, косвенно адресуемый по содержимому регистра C
содержимого любого из основных регистров микропроцессора.
Команды INI
и IND
устанавливают флаг Z
, если B=0
.
Команды IN ?,(C)
и OUT (C),(HL)
не имеют обрабатываемой ассемблером мнемоники, но их можно ввести по машинному коду ED 70 и ED 71 соответственно.
Мнемокод | Символическое описание | Флаги | Дл | ЧЦ | ЧТ | Intel 8080 | |||||
---|---|---|---|---|---|---|---|---|---|---|---|
C | Z | V | S | N | H | ||||||
IN A,(n) | A ⇐ порт(n) | ● | ● | ● | ● | ● | ● | 2 | 3 | 11 | IN N |
IN r,(C) | r ⇐ порт(C) | ● | ? | P | ? | 0 | ? | 2 | 3 | 12 | ─ |
IN ?,(C) | Уст. флагов как у IN r | ● | ? | P | ? | 0 | ? | 2 | 3 | 12 | ─ |
INI | (HL)⇐порт(C) B=B-1 HL=HL+1 | X | 1 ? | X | X | 1 | X | 2 | 4 | 16 | ─ |
INIR | (HL)⇐порт(C) B=B-1 HL=HL+1 Повторить пока B<>0 | X | 1 | X | X | 1 | X | 2 2 | 5 4 | 21 16 | ─ |
IND | (HL)⇐порт(C) B=B-1 HL=HL-1 | X | 1 ? | X | X | 1 | X | 2 | 4 | 16 | ─ |
INDR | (HL)⇐порт(C) B=B-1 HL=HL-1 Повторить пока B<>0 | X | 1 | X | X | 1 | X | 2 2 | 5 4 | 21 16 | ─ |
OUT (n),A | порт(n)⇐ A | ● | ● | ● | ● | ● | ● | 2 | 3 | 11 | OUT N |
OUT (C),r | порт(C)⇐ r | ● | ● | ● | ● | ● | ● | 2 | 3 | 12 | ─ |
OUT (C),(HL) | Уст.флаги | ● | ● | ● | ● | ● | ● | 2 | 3 | 12 | ─ |
OUTI | порт(C)⇐(HL) B=B-1 HL=HL+1 | X | 0 ? | X | X | 1 | X | 2 | 4 | 16 | ─ |
OTIR | порт(C)⇐(HL) B=B-1 HL=HL+1 Повторить пока B<>0 | X | 1 | X | X | 1 | X | 2 2 | 5 4 | 21 16 | ─ |
OUTD | порт(C)⇐(HL) B=B-1 HL=HL-1 | X | ? | X | X | 1 | X | 2 | 4 | 16 | ─ |
OTDR | порт(C)⇐(HL) B=B-1 HL=HL-1 Повторить пока B<>0 | X | 1 | X | X | 1 | X | 2 2 | 5 4 | 21 16 | ─ |
Мнемокод | Символическое описание | Флаги | Дл | ЧЦ | ЧТ | Intel 8080 | |||||
---|---|---|---|---|---|---|---|---|---|---|---|
C | Z | V | S | N | H | ||||||
JP nn | PC ⇐nn | ● | ● | ● | ● | ● | ● | 3 | 3 | 10 | JMP NN |
JP cc,nn | Если условие cc истинно PC=nn , иначе продолжить программу | ● | ● | ● | ● | ● | ● | 3 | 3 | 10 | JNZ, JZ, JNC, JC, JPO, JPE, JP, JM NN |
JP (HL) | PC ⇐HL | ● | ● | ● | ● | ● | ● | 1 | 1 | 4 | PCHL |
JP (IX) | PC ⇐IX | ● | ● | ● | ● | ● | ● | 2 | 2 | 8 | ─ |
JP (IY) | PC ⇐IY | ● | ● | ● | ● | ● | ● | 2 | 2 | 8 | ─ |
JR e | PC⇐PC+e | ● | ● | ● | ● | ● | ● | 2 | 3 | 12 | ─ |
JR C,e | Если C=0 , продолжить программу, иначе PC⇐PC+e | ● | ● | ● | ● | ● | ● | 2 2 | 2 3 | 7 12 | ─ |
JR NC,e | Если C=1 , продолжить программу, иначе PC⇐PC+e | ● | ● | ● | ● | ● | ● | 2 2 | 2 3 | 7 12 | ─ |
JR Z,e | Если Z=0 , продолжить программу, иначе PC⇐PC+e | ● | ● | ● | ● | ● | ● | 2 2 | 2 3 | 7 12 | ─ |
JR NZ,e | Если Z=1 , продолжить программу, иначе PC⇐PC+e | ● | ● | ● | ● | ● | ● | 2 2 | 2 3 | 7 12 | ─ |
DJNZ e | B=B-1 Если B=0 продолжить программу, иначе PC⇐PC+e | ● | ● | ● | ● | ● | ● | 2 2 | 2 3 | 8 13 | ─ |
Мнемокод | Флаги | Дл | ЧЦ | ЧТ | Intel 8080 | |||||
---|---|---|---|---|---|---|---|---|---|---|
C | Z | V | S | N | H | |||||
SLA r | ? | ? | P | ? | 0 | 0 | 2 | 1 | 4 | ─ |
SLA (HL) | ? | ? | P | ? | 0 | 0 | 2 | 4 | 15 | ─ |
SLA (IX+d) | ? | ? | P | ? | 0 | 0 | 4 | 6 | 23 | ─ |
SLA (IY+d) | ? | ? | P | ? | 0 | 0 | 4 | 6 | 23 | ─ |
SRA r | ? | ? | P | ? | 0 | 0 | 2 | 1 | 4 | ─ |
SRA (HL) | ? | ? | P | ? | 0 | 0 | 2 | 4 | 15 | ─ |
SRA (IX+d) | ? | ? | P | ? | 0 | 0 | 4 | 6 | 23 | ─ |
SRA (IY+d) | ? | ? | P | ? | 0 | 0 | 4 | 6 | 23 | ─ |
SRL r | ? | ? | P | ? | 0 | 0 | 2 | 1 | 4 | ─ |
SRL (HL) | ? | ? | P | ? | 0 | 0 | 2 | 4 | 15 | ─ |
SRL (IX+d) | ? | ? | P | ? | 0 | 0 | 4 | 6 | 23 | ─ |
SRL (IY+d) | ? | ? | P | ? | 0 | 0 | 4 | 6 | 23 | ─ |
RLA | ? | ● | ● | ● | 0 | 0 | 1 | 1 | 4 | RAL |
RL r | ? | ? | P | ? | 0 | 0 | 2 | 1 | 4 | ─ |
RL (HL) | ? | ? | P | ? | 0 | 0 | 2 | 4 | 15 | ─ |
RL (IX+d) | ? | ? | P | ? | 0 | 0 | 4 | 6 | 23 | ─ |
RL (IY+d) | ? | ? | P | ? | 0 | 0 | 4 | 6 | 23 | ─ |
RRA | ? | ● | ● | ● | 0 | 0 | 1 | 1 | 4 | RAR |
RR r | ? | ? | P | ? | 0 | 0 | 2 | 2 | 8 | ─ |
RR (HL) | ? | ? | P | ? | 0 | 0 | 2 | 4 | 15 | ─ |
RR (IX+d) | ? | ? | P | ? | 0 | 0 | 4 | 6 | 23 | ─ |
RR (IY+d) | ? | ? | P | ? | 0 | 0 | 4 | 6 | 23 | ─ |
RLCA | ? | ● | ● | ● | 0 | 0 | 1 | 1 | 4 | RLC |
RLC r | ? | ? | P | ? | 0 | 0 | 2 | 2 | 8 | ─ |
RLC (HL) | ? | ? | P | ? | 0 | 0 | 2 | 4 | 15 | ─ |
RLC (IX+d) | ? | ? | P | ? | 0 | 0 | 4 | 6 | 23 | ─ |
RLC (IY+d) | ? | ? | P | ? | 0 | 0 | 4 | 6 | 23 | ─ |
RRCA | ? | ● | ● | ● | 0 | 0 | 1 | 1 | 4 | RRC |
RRC r | ? | ? | P | ? | 0 | 0 | 2 | 2 | 8 | ─ |
RRC (HL) | ? | ? | P | ? | 0 | 0 | 2 | 4 | 15 | ─ |
RRC (IX+d) | ? | ? | P | ? | 0 | 0 | 4 | 6 | 23 | ─ |
RRC (IY+d) | ? | ? | P | ? | 0 | 0 | 4 | 6 | 23 | ─ |
RLD | ● | ? | P | ? | 0 | 0 | 2 | 5 | 18 | ─ |
RRD | ● | ? | P | ? | 0 | 0 | 2 | 5 | 18 | ─ |
Действие команд сдвига поясняется рисунком:
SLA
(сдвиг влево арифметический):
┌──┐ ┌──┬──┬──┬──┬──┬──┬──┬──┐ │ ◄─────┤b7│b6│b5│b4│b3│b2│b1│b0├◄─── 0 └──┘ └──┴──┴──┴──┴──┴──┴──┴──┘ флаг C регистр/память
SRA
(сдвиг вправо арифметический):
┌──────────────────────────────────────┐ │ ┌──┐ ┌──┬──┬──┬──┬──┬──┬──┬──┐ │ └──► │ ┌►┤b7│b6│b5│b4│b3│b2│b1│b0├──┘ └──┘ │ └┬─┴──┴──┴──┴──┴──┴──┴──┘ └──┘ флаг C регистр/память
SRL
(сдвиг вправо логический):
┌──────────────────────────────────────┐ │ ┌──┐ ┌──┬──┬──┬──┬──┬──┬──┬──┐ │ └──► │ ┌─►b7│b6│b5│b4│b3│b2│b1│b0├►─┘ └──┘ │ └──┴──┴──┴──┴──┴──┴──┴──┘ 0 флаг C регистр/память
RLA
(сдвиг влево через перенос):
┌──────────────────────────────────────┐ │ ┌──┐ ┌──┬──┬──┬──┬──┬──┬──┬──┐ │ └─┤ ├─◄───┤b7│b6│b5│b4│b3│b2│b1│b0├◄──┘ └──┘ └──┴──┴──┴──┴──┴──┴──┴──┘ флаг C аккумулятор
Команда RL выполняется аналогично над регистром или памятью.
RRA
(сдвиг вправо через перенос):
┌─────────────────────────────────────┐ │ ┌──┐ ┌──┬──┬──┬──┬──┬──┬──┬──┐ │ └►┤ ├─►───┤b7│b6│b5│b4│b3│b2│b1│b0├──┘ └──┘ └──┴──┴──┴──┴──┴──┴──┴──┘ флаг C аккумулятор
Команда RR
выполняется аналогично над регистром или памятью.
RLCA
(циклический сдвиг влево):
┌─────────────────────────────┐ ┌──┐ │ ┌──┬──┬──┬──┬──┬──┬──┬──┐ │ │ ◄───┴─┤b7│b6│b5│b4│b3│b2│b1│b0├◄──┘ └──┘ └──┴──┴──┴──┴──┴──┴──┴──┘ флаг C аккумулятор
Команда RLC
выполняется аналогично над регистром или памятью.
RRCA
(циклический сдвиг вправо):
┌───────┬──────────────────────────────┐ │ ┌──┐ │ ┌──┬──┬──┬──┬──┬──┬──┬──┐ │ └─► │ └─►┤b7│b6│b5│b4│b3│b2│b1│b0├───┘ └──┘ └──┴──┴──┴──┴──┴──┴──┴──┘ флаг C аккумулятор
Команда RRC
выполняется аналогично над регистром или памятью.
RLD
(обмен полубайтов влево):
┌───────────────────────┐ ┌─────┬──┴──┐ ┌─────┬──▼──┐ │ │ │ │ │ │ └─────┴──▲──┘ └┬─▲──┴──┬──┘ └───────────────┘ └─────┘ аккумулятор память, адресуемая (HL)
RRD
(обмен полубайтов вправо):
┌─────────────────┐ ┌───┐ ┌─────┬──┴──┐ ┌──▼─┴┬──▼──┐ │ │ │ │ │ │ └─────┴──▲──┘ └─────┴──┬──┘ └───────────────────────┘ аккумулятор память, адресуемая (HL)
Мнемокод | Символическое описание | Флаги | Дл | ЧЦ | ЧТ | Intel 8080 | |||||
---|---|---|---|---|---|---|---|---|---|---|---|
C | Z | V | S | N | H | ||||||
LDI | (DE)⇐ (HL) DE=DE+1 HL=HL+1 BC=BC-1 | ● | ● | ? 1 | ● | 0 | 0 | 2 | 4 | 16 | ─ |
LDIR | (DE)⇐ (HL) DE=DE+1 HL=HL+1 BC=BC-1 Повторяется пока BC<>0 | ● | ● | 0 | ● | 0 | 0 | 2 | 4 | 16 | ─ |
LDD | (DE)⇐ (HL) DE=DE-1 HL=HL-1 BC=BC-1 | ● | ● | ? 1 | ● | 0 | 0 | 2 | 4 | 16 | ─ |
LDDR | (DE)⇐ (HL) DE=DE-1 HL=HL-1 BC=BC-1 Повторяется пока BC<>0 | ● | ● | 0 | ● | 0 | 0 | 2 | 4 | 16 | ─ |
Мнемокод | Символическое описание | Флаги | Дл | ЧЦ | ЧТ | Intel 8080 | |||||
---|---|---|---|---|---|---|---|---|---|---|---|
C | Z | V | S | N | H | ||||||
CPI | A = (HL) ? HL⇐HL+1 BC⇐BC-1; P/V=0,if BC=0 P/V=1,if <>0 | ● | ? | ? | ? | 1 | ? | 2 | 4 | 16 | — |
CPIR | A = (HL) ? HL⇐HL+1 BC⇐BC-1 Повторяется пока BC<>0 | ● | ? | ? | ? | 1 | ? | 2 | 4 | 16 | — |
CPD | A = (HL) ? HL=HL-1 BC=BC-1 P/V=0,if BC=0 P/V=1,if <>0 | ● | ? | ? | ? | 1 | ? | 2 | 4 | 16 | — |
CPDR | A = (HL) ? HL=HL-1 BC=BC-1 Повторяется пока BC<>0 | ● | ? 2 | ? 1 | ? | 1 | ? | 2 | 4 | 16 | — |
Мнемокод | Символическое описание | Флаги | Дл | ЧЦ | ЧТ | Intel 8080 | |||||
---|---|---|---|---|---|---|---|---|---|---|---|
C | Z | V | S | N | H | ||||||
CALL nn | SP ⇐ SP-2 (SP) ⇐ PC PC = nn | ● | ● | ● | ● | ● | ● | 3 | 5 | 17 | CALL NN |
CALL cc,nn | Если условие cc ложно, продолжить программу, иначе так же, как и для CALL nn | ● | ● | ● | ● | ● | ● | 3 | 3 | 10 | CNZ , CZ , CNC , CC , CPO , CP , CPE , CM |
3 | 5 | 17 | |||||||||
RET | PC ⇐ (SP) SP ⇐ SP+2 | ● | ● | ● | ● | ● | ● | 1 | 3 | 10 | RET |
RET cc | Если условие cc ложно, продолжить программу, иначе так же, как и для RET | ● | ● | ● | ● | ● | ● | 1 | 1 | 5 | RNZ , RZ , RNC , RC , RPO , RP , RPE , RM |
1 | 3 | 11 | |||||||||
RETI | Возврат после прерывания | ● | ● | ● | ● | ● | ● | 2 | 4 | 14 | ─ |
RETN | Возврат после немаскируемого прерывания | ● | ● | ● | ● | ● | ● | 2 | 4 | 14 | ─ |
RST p | SP ⇐ SP-2 (SP)⇐ PC PC = p | ● | ● | ● | ● | ● | ● | 1 | 3 | 11 | RST N |
В системе команд микропроцессора имеется восемь однобайтовых команд RST 0
– RST 7
вызова подпрограмм, расположенных по фиксированным адресам. Ниже приведена таблица соответствия между этими командами и шестнадцатеричными адресами ячеек памяти, куда передается управление при их выполнении.
Команда | Адрес начала подпрограммы |
---|---|
RST 0 | 0000 |
RST 1 | 0008 |
RST 2 | 0010 |
RST 3 | 0018 |
RST 4 | 0020 |
RST 5 | 0028 |
RST 6 | 0030 |
RST 7 | 0038 |
В мнемонике микропроцессора Z80 (в отличие от мнемоники Intel 8080) команда записывается с указанием непосредственного адреса обращения к подпрограмме, например, RST 7
записывается как RST 38h
.
Команда NOP
этой группы не производит никаких операций, однако т.к. она выполняется за определенный отрезок времени, её можно использовать в программах для задания временных интервалов.
Появление в программе команды HALT
ведет к останову выполнения программы. Продолжить выполнение программы можно только подачей сигнала СБРОС или ЗАПРОС ПРЕРЫВАНИЯ на соответствующие входы микропроцессора. В режиме ожидания команда схожа с командой NOP
.
Команда IM
служит для установки вектора прерываний. Команды DI
и EI
— для запрещения и разрешения маскируемых прерываний.
Команда IM 0
устанавливает режим прерывания, в котором прерывающее устройство может вставить какую–нибудь команду в шину данных или для выполнения ЦП.
Команда IM 1
устанавливает режим прерывания, в котором процессор будет реагировать на прерывание, выполняемое командой RST 38H
.
Команда IM 2
устанавливает режим прерывания, в котором разрешается непрямой вызов какой–нибудь ячейки памяти. В этом режиме ЦП формирует 16–битный адрес памяти. Восемь верхних битов содержит регистр I
контроля вектора прерывания.
Мнемокод | Символическое описание | Флаги | Дл | ЧЦ | ЧТ | Intel 8080 | |||||
---|---|---|---|---|---|---|---|---|---|---|---|
C | Z | V | S | N | H | ||||||
NOP | Нет операции | ● | ● | ● | ● | ● | ● | 1 | 1 | 4 | NOP |
HALT | Останов | ● | ● | ● | ● | ● | ● | 1 | 1 | 4 | HLT |
DI | IFF=0 | ● | ● | ● | ● | ● | ● | 1 | 1 | 4 | DI |
EI | IFF=1 | ● | ● | ● | ● | ● | ● | 1 | 1 | 4 | EI |
IM 0 | Установка режима прерываний | ● | ● | ● | ● | ● | ● | 2 | 2 | 8 | ─ |
IM 1 | ● | ● | ● | ● | ● | ● | 2 | 2 | 8 | ─ | |
IM 2 | ● | ● | ● | ● | ● | ● | 2 | 2 | 8 | ─ |