В приложении приводится полный список команд микропроцессора 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 (SP) ⇐ qq | ● | ● | ● | ● | ● | ● | 1 | 3 | 11 | PUSH PSW, B,D,H |
PUSH IX | SP⇐ SP-2 (SP) ⇐ IX | ● | ● | ● | ● | ● | ● | 2 | 4 | 15 | ─ |
PUSH IY | SP⇐ SP-2 (SP) ⇐ IY | ● | ● | ● | ● | ● | ● | 2 | 4 | 15 | ─ |
POP qq | qq⇐(SP) SP ⇐ SP+2 | ● ? | ● ? | ● ? | ● ? | ● ? | ● ? | 1 | 3 | 10 | POP PSW, |
POP IX | IX⇐(SP) SP ⇐ SP+2 | ● | ● | ● | ● | ● | ● | 2 | 4 | 14 | ─ |
POP IY | IY⇐(SP) SP ⇐ SP+2 | ● | ● | ● | ● | ● | ● | 2 | 4 | 14 | ─ |
Команда 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) ⇐ (IX+d)+1 | ● | ? | V | ? | 0 | ? | 3 | 6 | 23 | ─ |
INC (IY+d) | (IY+d) ⇐ (IY+d)+1 | ● | ? | V | ? | 0 | ? | 3 | 6 | 23 | ─ |
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) ⇐ (IX+d)-1 | ● | ? | V | ? | 1 | ? | 3 | 6 | 23 | ─ |
DEC (IY+d) | (IY+d) ⇐ (IY+d)-1 | ● | ? | V | ? | 1 | ? | 3 | 6 | 23 | ─ |
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 | ─ |
EXX | BC ⇔ BC' DE ⇔ DE' HL ⇔ HL' | ● | ● | ● | ● | ● | ● | 1 | 1 | 4 | ─ |
EX (SP),HL | H ⇔ (SP+1) L ⇔ (SP) | ● | ● | ● | ● | ● | ● | 1 | 5 | 19 | XTHL |
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 | Инверсия битов аккумулятора 0 ⇔ 1 | ● | ● | ● | ● | 1 | 1 | 1 | 1 | 4 | CMA |
CCF | Инвертировать флаг C | ? | ● | ● | ● | 0 | 0 | 1 | 1 | 4 | CMC |
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 | ─ |