Ensemble d'instructions z80
Auteur ???
 

    Cliquez pour revenir au menu du site... ou ici pour retourner au menu du tutorial.

Z80 Instruction set summary

Table A-3. Z80 Mnemonics and Operations in Alphabetical Order
 

Mnemonic Operation CZPSNH Len Tim Comments
ADC A,r
ADC A,(HL)
ADC A,n
ADC A,(ii+n)
ADC HL,rr
A:=A+r+CY
A:=A+(HL)+CY
A:=A+n+CY
A:=A+(ii+n)+CY
HL:=HL+rr+CY
**V*0*



**V*0*
1
1
2
3
2
4
7
7
19
15
r - A,B,C,D,E,H,L

n - byte (0..FF)
ii - IX,IY
rr - BC,DE,HL,SP
ADC A,r
ADC A,(HL)
ADC A,n
ADC A,(ii+n)
ADC HL,rr
ADD IX,ry
ADD IY,rx
A:=A+r
A:=A+(HL)
A:=A+n
A:=A+(ii+n)
HL:=HL+rr
X:=IX+px
IY:=IY+py
**V*0*



*...0x

 
1
1
2
3
1
2
2
4
7
7
19
11
15
15




ry - BC,DE,SP,IY
rx - BC,DE,SP,IX
AND r
AND (HL)
AND n
AND (ii+n)
A:=A and r
A:=A and (HL)
A:=A and n
A:=A and (ii+n)
0*P*01


 
1
1
2
3
4
7
7
19
 
BIT b,r
BIT b,(HL)
BIT b,(ii+n)
Z:=not rb
Z:=not (HL)b
Z:=not (ii+n)b
.*xx01

 
2
2
4
8
12
20
b - bit number (0..7)
xb - bit b of
   location x
CALL nn
CALL cc,nn
 
PUSH PC;PC:=nn
If cc then CALL nn
 else continue
......

 
3
3
 
17
17
10
nn - word (0..FFFF)
cc - C,NC,Z,NZ,M,P,PE,PO
 
CCF CY:=not CY *...0x 1 4  
CP r
CP (HL)
CP n
CP (ii+n)
A-r
A-(HL)
A-n
A-(ii+n)
**V*1*


 
1
1
2
3
4
7
7
19
 
CDP A-(HL);dec HL;dec BC .***1* 2 16 PV=0 if BC=0,else PV=1
CPDR
 
Repeat CPD
until Z=1 or BC=0
.***1*
 
2
 
21
16
 
CPI A-(HL);inc HL;dec BC .***1* 2 16 PV=0 if BC=0,else PV=1
CPIR
 
Repeat CPI
 
.***1*
 
2
 
21
16
 
CPL A:=A xor 255 ....11 1 4  
DAA Decimal adjust Acc. **P*.* 1 4  
DEC r
DEC (HL)
DEC (ii+n)
DEC rr
DEC ii
r:=r-1
(HL):=(HL)-1
(ii+n):=(ii+n)-1
rr:=rr-1
ii:=ii-1
.*V*1*


......
 
1
1
3
1
2
4
11
23
6
10
 
DI IFF:=0 ...... 1 4  
DJNZ e
 
dec B;if B 0 JR e
 if B=0 continue
......
 
2
 
13
8
e - adresse relative
 
EI IFF:=1 ...... 1 4  
EX AF,AF'
EX DE,HL
EX (SP),HL
EX (SP),ii
AF<->AF'
DE<->HL
(SP)<->HL
(SP)<->ii
......


 
1
1
1
2
4
4
4
23
 
EXX
 
BC<->BC';DE<->DE';
HL<->HL'
......
 
1
 
4
 
 
Halt Halte le processeur ...... 1 4  
IM 1
IM 2
IM 3
Interrupt mode 1
Interrupt mode 2
Interrupt mode 3
......

 
2

 
8

 
 
IN A,(n)
IN r,(C)
IN ?,(C)
 
A:=port(n)
r:=port(C)
only set flags as
 as IN r,(C) does
......


 
2
2
2
 
11
12
12
 


can't be entered as a
command;code is ED 70
INC r
INC (HL)
NC (ii+n)
INC rr
INC ii
r:=r+1
(HL):=(HL)+1
(ii+n):=(ii+n)+1
rr:=rr+1
ii:=ii+1
.*V*0*


......
 
1
1
3
1
2
4
11
23
6
10
 
IND
 
(HL):=port(C);
dec HL;dec B
x*xx1x
 
2
 
16
 
Z=1 if B=0,else Z=0
 
INDR
 
Repeat IND
 until B=0
x1xx1x
 
2
 
21
16
 
INI
 
(HL):=port(C);
inc HL;dec B
x*xx1x
 
2
 
16
 
Z=1 if B=0,else Z=0
 
INIR
 
Repeat INI
 until B=0
x1xx1x
 
2
 
21
16
 
JP nn
JP cc,nn
JP (HL)
JP (ii)
PC:=nn
If cc then JP nn
PC:=HL
PC:=ii
......
......

 
3
3
1
2
10
10
4
8
 
JR e
JR cond,e
 
PC:=PC+e
If cond then JR e
 else NOP
......

 
2
2
 
12
12
7
cond - C,NC,Z,NZ
LD r,r
LD r,(HL)
LD r,n
LD r,(ii+n)
LD (HL),r
LD (ii+n),r
LD (HL),n
LD (ii+n),n
LD A,(BC)
LD A,(DE)
LD A,(nn)
LD (BC),A
LD (DE),A
LD (nn),A
LD A,I
LD A,R
LD I,A
LD R,A
LD rr,nn
LD ii,nn
LD HL,(nn)
LD rr,(nn)
LD ii,(nn)
LD (nn),HL
LD (nn),rr
LD (nn),ii
LD SP,HL
LD SP,ii
r:=r
r:=(HL)
r:=n
r:=(ii+n)
(HL):=r
(ii+n):=r
(HL):=n
(ii+n):=n
A:=(BC)
A:=(DE)
A:=(nn)
(BC):=A
(DE):=A
(nn):=A
A:=I
A:=R
I:=A
R:=A
rr:=nn
ii:=nn
HL:=(nn)
rr:=(nn)
ii:=(nn)
(nn):=HL
(nn):=rr
(nn):=ii
SP:=HL
SP:=ii
......













.***00

......









 
1
1
2
3
1
3
2
4
1
1
3
1
1
3
2
2
2
2
3
4
3
4
4
3
4
4
1
1
4
7
7
19
7
19
10
19
7
7
13
7
7
13
9
9
9
9
10
14
16
20
20
16
20
20
6
10












PV=IFF
PV=IFF











 
LDD
 
(DE):=(HL);
dec DE,HL,BC
..*.00
 
2
 
16
 
PV=0 if BC=0,else PV=1
 
LDDR
 
Repeat LDD
 
..0.00
 
2
 
21
16
 
LDI
 
(DE):=(HL);
inc DE,HL;dec BC
..*.00
 
2
 
16
 
PV=0 if BC=0,else PV=1
 
LDIR
 
Repeat LDI
 until Z=1 or BC=0
..0.00
 
2
 
21
16
 
NEG A:=0-A **V*1* 2 8  
NOP No operation ...... 1 4  
OR r
OR (HL)
OR n
OR (ii+n)
A:=A or r
A:=A or (HL)
A:=A or n
A:=A or (ii+n)
0*P*00


 
1
1
2
3
4
7
7
19
 
OTDR
 
Repeat OUTD
 until B=0
x1xx1x
 
2
 
21
16
OTIR
 
Repeat OUTI
 until B=0
x1xx1x
 
2
 
21
16
 
OUT (n),A
OUT (C),r
port(n):=A
port(C):=r
......
 
2
2
11
12
 
OUTD
 
port(C):=(HL);
dec HL;dec B
x*xx1x
 
2
 
16
 
Z=1 if B=0,else Z=0
 
OUTI
 
port(C):=(HL);
inc HL;dec B
x*xx1x
 
2
 
16
 
Z=1 if B=0,else Z=0
 
POP qq
POP ii
qq:=(SP);SP:=SP+2
ii:=(SP);SP:=SP+2
......
 
1
2
10
14
qq - AF,BC,DE,HL
 
PUSH qq
PUSH ii
SP:=SP-2;(SP):=qq
SP:=SP-2;(SP):=ii
...... 1
2
11
15
 
RES b,r
RES b,(HL)
RES b,(ii+n)
rb:=0
(HL)b:=0
(ii+n)b:=0
......

 
2
2
4
8
15
23
 
RET
RET cc
 
POP PC
If cc then RET
 else NOP
......
......
 
1
1
 
10
11
 
 
RETI Return from interr. ...... 2 14  
RETN Return from NMI ...... 2 14  
RL r
RL (HL)
RL (ii+n)
 
+------->------+
|+--+ +-------+|
++CY+<+7 <-- 0++

+--+ +-------+
 
**P*00


 
2
2
4
 
8
15
23
 
 
RLA *...00 1 4  
RLC r
RLC (HL)
RLC (ii+n)
+---->----+
+--+ |+-------+|
|CY+<++7 <-- 0++
+--+ +-------+
 
**P*00

 
2
2
4
8
15
23
 
RLCA *...00 1 4  
RLD



 
A +---->---+(HL)
+---+-+-++---+-+-+
|7 4|3 0||7 4|3 0|
+---+-+-++++-+-+-+
 +-<-++-<-+ |
.*P*00



 
2



 
18



 
 
RR r
RR (HL)
RR (ii+n)
+------<-------+
|+-------+ +--+|
++7 --> 0+>+CY++
+-------+ +--+
 
**P*00

 
2
2
4
8
15
23
 
RRA *...00 1 4  
RRC r
RRC (HL)
RRC (ii+n)
 
+---<-----+
|+-------+| +--+ |
++7 --> 0++>+CY|
+-------+ +--+
 
**P*00


 
2
2
4
 
8
15
23
 
 
RRCA *...00 1 4  
RRD



 
A +---<----+(HL)
+---+-+-++---+-+-+
|7 4|3 0||7 4|3 0|
+---+-+-++++-+-+-+
 +->-++->-+
.*P*00



 
2



 
18



 
 
RST adr CALL adr ...... 1 11 adr - byte (000xxx00b)
SBC A,r
SBC A,(HL)
SBC A,n
SBC A,(ii+n)
SBC HL,rr
A:=A-r-CY
A:=A-(HL)-CY
A:=A-n-CY
A:=A-(ii+n)-CY
HL:=HL-rr-CY
**V*1*



**V*1x
1
1
2
3
2
4
7
7
19
15
 
SCF CY:=1 1...00 1 4  
SET b,r
SET b,(HL)
SET b,(ii+n)
rb:=1
(HL)b:=1
(ii+n)b:=1
......
 
2
2
4
8
15
23
 
SLA r
SLA (HL)
SLA (ii+n)
+--+ +-------+
|CY+<+7 <-- 0+<0
+--+ +-------+
**P*00

 
2
2
4
8
15
23
 
SRA r
SRA (HL)
SRA (ii+n)
 +-------+ +--+
+>+7 --> 0+>+CY|
+-+-------+ +--+
**P*00

 
2
2
4
8
15
23
SRL r
SRL (HL)
SRL (ii+n)
 +-------+ +--+
 0>+7 --> 0+>+CY|
 +-------+ +--+
**P*00

 
2
2
4
8
15
23
 
SUB r
SUB (HL)
SUB n
SUB (ii+n)
A:=A-r
A:=A-(HL)
A:=A-n
A:=A-(ii+n)
**V*0*


 
1
1
2
3
4
7
7
19
 
XOR r
XOR (HL)
XOR n
XOR (ii+n)
A:=A xor r
A:=A xor (HL)
A:=A xor n
A:=A xor (ii+n)
0*P*00


 
1
1
2
3
4
7
7
19