RR = Registre - Registre
Im = Immédiat
IDX = Indexé
D = Direct
In = Indirect
r ou r' est un registre 8 bits
n est un nombre de 8 bits
nn est un nombre 16 bits
dd est BC, DE, HL ou SP.
qq est AF, BC, DE ou HL.
pp est BC, DE, IX ou SP.
rr est HC, DE, IX ou SP.
C = Carry / flag de report
Z = Flag zéro
S = Flag signe
P/V = Flag parité ou dépassement
H = Flag demi-carry
N = Flag addition/soustraction
? Flag fixé en fonction du résultat de
l'opération
0 Flag annulé
1 Flag mis
* Flag non affecté
- Modification du flag imprévisible
V Flag mis si dépassement (overflow)
P Flag mis si parité
F Le flag P/V reçoit le contenu du flip-flop
d'interruption (IFF)
R <- n : met le nombre n dans le
registre r.
DE <-> HL : echange les contenus de
DE et HL.
Mnémonique |
Opération Symbolique |
Nbre d’octets |
Nbre de cycles |
Mode d’ adressage |
Flags
affectés C Z P/V
S N H |
LD r,r’
LD r,n LD
r,(HL) LD
r,(IX+d) LD
r,(IY+d) LD
(HL),r LD
(IX+d),r LD
(IY+d),r LD
(HL),n LD
(IX+d),n LD
(IY+d),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 |
r <- r’
r <- n r
<-(HL) r
<-(IX+d) r
<-(IY+d) (HL)<-r
(IX+d)<-r
(IY+d)<-r
(HL)<-n
(IX+d)<-n
(IY+d)<-n
A <- (BC) A <- (DE) A <-
(nn) (BC)
<- A (DE) <- A (nn) <- A A <-
I A <-
R I <-
A R <-
A |
1 2 1 3 3 1 3 3 2 4 4 1 1 3 1 1 3 2 2 2 2 |
1 2 2 5 5 2 5 5 3 5 5 2 2 4 2 2 4 2 2 2 2 |
RR Im In IDX IDX In IDX IDX In IDX IDX In In D In In D RR RR RR RR |
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ? F ? 0 0 * ?
F ? 0 0 * *
* * * * * *
* * * * |
Mnémonique |
Opération Symbolique |
Nbre d’octets |
Nbre de cycles |
Mode d’ adressage |
Flags affectés C Z P/V S N H |
LD dd,nn LD IX,nn LD IY,nn LD HL,(nn) LD dd,(nn)
LD IX,(nn)
LD
IY,(nn) LD (nn),HL
LD (nn),dd
LD (nn),IX
LD (nn),IY |
dd <-
nn IX <-
nn IY <-
nn H <-
(nn+1) L <-
(nn) dd <-
(nn+1) dd <-
(nn) IX <-
(nn+1) IX <-
(nn) IY <-
(nn+1) IY <-
(nn) (nn+1)
<- H (nn)<-
L (nn+1)
<- dd (nn) <-
dd (nn+1)
<- IX (nn) <-
IX (nn+1)
<- IY (nn) <-
IY |
3 4 4 3 4 4 4 3 4 4 4 |
3 4 4 5 6 6 6 5 6 6 6 |
Im Im Im D D D D D D D D |
* *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * |
LD
SP,HL LD
SP,IX LD
SP,IY PUSH qq
PUSH IX
PUSH IY
POP qq POP IX POP IY |
SP
<- HL SP
<- IX SP
<- IY (SP-1) <- qq (SP-2) <- qq (SP-1)
<- IX (SP-2)
<- IX (SP-1)
<- IY (SP-2)
<- IY qq
<- (SP) qq
<- (SP+1) IX
<- (SP) IX
<- (SP+1) IY
<- (SP) IY
<- (SP+1) |
1 2 2 1 2 2 1 2 2 |
1 2 2 3 4 4 3 4 4 |
RR RR RR Im Im Im Im Im Im |
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
Mnémonique |
Opération Symbolique |
Nbre d’octets |
Nbre de cycles |
Mode d’ adressage |
Flags affectés C Z P/V S N H |
EX DE,HL EX AF,AF’ EXX EX (SP),HL EX (SP),IX EX (SP),IY LDI LDIR LDD |
DE
<-> HL AF
<-> AF’ BC <-> BC’ DE <-> DE’ HL
<-> HL’ H
<-> (SP+1) L
<-> (SP) IX
<-> (SP+1) IX
<-> (SP) IY
<-> (SP+1) IY
<-> (SP) (DE) <-
(HL) DE <- DE+1 HL <- HL+1 BC <- BC-1 (DE) <- (HL) DE <- DE+1 HL <- HL+1 BC <- BC-1 JUSQUE BC=0 (DE) <-
(HL) DE<-DE-1
HL<-HL-1
BC<-BC-1 |
1 1 1 1 2 2 2 2 2 |
1 1 1 5 6 6 4 5 4 |
RR RR RR RR RR RR In In In |
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ? * 0 0 * * ? * 0 0 |
LDDR
CPI CPIR CPD CPDR |
(DE) <-
(HL) DE <- DE-1 HL <- HL-1 BC <- BC-1 JUSQUE BC=0 A-(HL) HL
<- HL+1 BC
<- BC-1 A-(HL) HL <- HL+1 BC <- BC-1 JUSQUE A=(HL) OU BC=0 A-(HL) HL
<- HL-1 BC <-
BC-1 A-(HL) HL <- HL-1 BC <- BC-1 JUSQUE A=(HL) OU BC=0 |
2 2 2 2 2 |
5 4 5 4 5 |
In In In In In |
* * 0 * 0 0 * ? ? ? ? ? * ? ? ? ? ? * ? ? ? ? ? * ? ? ? ? ? |
Mnémonique |
Opération Symbolique |
Nbre d’octets |
Nbre de cycles |
Mode d’ adressage |
Flags
affectés C Z P/V
S N H |
ADD A,r
ADD A,n
ADD
A,(HL) ADD
A,(IX+d) ADD
A,(IY+d) ADC A,s
SUB A,s
SBC A,s
AND s OR s XOR s CP s INC INC(HL)
INC(IX+d) INC(IY+d) DEC d |
A <-
A+r A <-
A+n A <-
A+(HL) A <-
A+(IX+d) A <-
A+(IY+d) A <-
A+s+CY A <-
A-s A <-
A-s-CY A <-
A ET s A <-
A OU s A <-
A OUEX s A-s r-r+1 (HL)<-(HL)+1
(IX+d)<-(IX+d)+1
(IY+d)<-(IY+d)+1
d <-
d-1 |
1 2 1 3 3 1 1 3 3 |
1 2 2 5 5 1 3 6 6 |
Im Im In IDX IDX Im Im Im Im Im Im Im Im In IDX IDX Im |
? ? V ? 0 ? ? ? V ? 0 ? ? ? V ? 0 ? ? ? V ? 0 ? ? ? V ? 0 ? ? ? V ? 0 ? ? ? V ? 1 ? ? ? V ? 1 ? 0 ? P ? 0 1 0 ? P ? 0 1 0 ? P ? 0 1 ? ? V ? 1 ? * ? V ? 0 ? * ? V ? 0 ? * ? V ? 0 ? * ? V ? 0 ? * ? V
? 1 1 |
Mnémonique |
Opération Symbolique |
Nbre d’octets |
Nbre de cycles |
Mode d’ adressage |
Flags affectés C Z P/V S N H |
DAA convertit A en BCD arès addition ou sous- traction sur oper. BCD CPL NEG CCF SCF NOP HALT DI EI IM0 IM1 IM2 |
_ A <-
A A <-
0 - A CY
<- CY CY
<- 1 Pas d’opération CPU halte IFF <- 0 IFF <- 1 Mettre Interruption Mode 0 Interruption Mode 1 Interruption
Mode 2 |
1 1 2 1 1 1 1 1 1 2 2 2 |
1 1 2 1 1 1 1 1 1 2 2 2 |
Im Im Im Im Im Im Im Im Im Im
Im Im |
? ? P ? * * * * * * 1 1 ? ? V ? 1 ? ? * * * 0 * 1 * * * 0 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
Mnémonique |
Opération Symbolique |
Nbre d’octets |
Nbre de cycles |
Mode d’ adressage |
Flags
affectés C Z P/V
S N H |
ADD
HL,dd ACD
HL,dd SBC
HL,dd ADD
IX,pp ADD
IY,rr INC dd INC IX INC IY DEC dd DEC IX DEC IY |
HL <- HL+dd HL <- HL+dd+CY HL <- HL-dd-CY IX <- IX+pp IY <- IY+rr dd
<- dd+1 IX
<- IX+1 IY
<- IY+1 dd
<- dd-1 IX
<- IX-1 IY
<- IY-1 |
1 2 2 2 2 1 2 2 1 2 2 |
3 4 4 4 4 1 2 2 1 2 2 |
Im Im Im Im Im Im Im Im Im Im Im |
? * * * 0 - ? ? V ? 0 - ? ? V ? 1 - ? * * * 0 - ? * * * 0 - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
GROUPE ROTATION ET DECALAGE
Mnémonique |
Opération Symbolique |
Nbre d’octets |
Nbre de cycles |
Mode d’ adressage |
Flags affectés C Z P/V S N H |
RLCA RLA RRCA RRA RLCr RL s RRC s RR s SLA s SRA s SRL s RLD RRD |
|
1 1 1 2 - - - - - - 2 2 |
1 1 1 2 - - - - - - 5 5 |
Im Im Im Im Im Im Im Im Im Im Im Im |
? * * * 0 0 ? * * * 0 0 ? * * * 0 0 ? ? P ? 0 0 ? ? P ? 0 0 ? ? P ? 0 0 ? ? P ? 0 0 ? ? P ? 0 0 ? ? P ? 0 0 ? ? P ? 0 0 * ? P ? 0 0 * ? P ? 0 0 |
GROUPE MISE, ANNULATION ET TEST DE BIT
Mnémonique |
Opération Symbolique |
Nbre d’octets |
Nbre de cycles |
Mode d’ adressage |
Flags
affectés C Z P/V
S N H |
Bit 6,r
Bit
6,(HL) Bit
6,(IY+d) Bit
6,(IY+d) Set 6,r
Set
6,(HL) Set
6,(IX+d) Set
6,(IY+d) Set 6,s |
Z<--r
Z<--(HL)
Z<--(IY+d)
Z<--(IY+d)
r<--1 (HL)<--1
(IX+d)<--1
(IY+d)<--1
s<--0 |
2 2 4 4 2 2 4 4 - |
2 3 5 5 2 4 6 6 - |
RR In IDX IDX RR In IDX IDX RR |
* ? - - 0 1 * ? - - 0 1 * ? - - 0 1 * ? - - 0 1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
GROUPE DE JUMP (SAUT)
Mnémonique |
Opération Symbolique |
Nbre d’octets |
Nbre de cycles |
Mode d’ adressage |
Flags affectés C Z P/V S N H |
JP nn JP cc,nn JR e JR C e JR NC e JR Z e JR NZ e JP(HL) JP(IX) JP(IY) DJNZ e |
PX<--nn
Si condition cc vraie PC<--nn sinon continue PC<--PC+e Si c=0 continue Si c=1 continue Si z=0 continue Si z=1 continue PC<--HL PC<--IX
PC<--IY
B<--B-1 Si B=0 continue B=0 PC<--PC+e |
3 3
2 2 2 2 2 1 2 2 2 |
3 3 3 2 2 2 2 1 2 2 3 |
Im Im Im Im Im Im Im In IDX IDX Im |
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
GROUPE CALL ET RETURN
Mnémonique |
Opération Symbolique |
Nbre d’octets |
Nbre de cycles |
Mode d’ adressage |
Flags
affectés C Z P/V
S N H |
CALL n CALL
cc,nn RET RET cc RETI RETN RET P |
(SP-1)<--PC
(SP-2)<--PC
Si condition cc fausse, continuer sinon comme CALL nn PC<--(SP)
PC<--(SP+1)
Si condition cc fausse, continuer sinon comme RET Retour d'interruption Retour d'interruption non masquable (SP-1)<--PC (SP-2)<--PC PC<--0 PC<--P |
3 3 1 1 2 2 1 |
5 3 3 1 4 4 3 |
Im Im Im Im Im Im Im |
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |