Revenir au plan du site

Super instructions


Le Z80 est un processeur 8 bits, il n'est par exemple pas capable de faire des affectations 16 bits ou des décalages 16 bits (hors ADD HL,HL). Les instructions de rotations ne font pas exception. Voici donc une liste de tous les décalages possibles, appliqués à chacun des registres généraux 16 bits.
Instructions fictives
RST Z,#38 ; un RST conditionnel!
RST NZ,#38
RST C,#38
RST NC,#38

correspondant en réalité à
JR Z,$+1  ; l'encodage de $-1 correspond à #FF, qui
JR NZ,$+1 ; est l'opcode du RST #38. Ainsi un saut
JR C,$+1  ; conditionnel réussi va sauter
JR NC,$+1 ; sur l'adresse relative et faire un RST #38


Instructions fictives
LD BC,BC ; personne ne fait ça on est d'accord?
LD BC,DE
LD BC,HL
LD DE,BC
LD DE,DE
LD DE,HL
LD HL,BC
LD HL,DE
LD HL,HL

correspondant en réalité à
LD B,B : LD C,C ; oui, ça ne sert à RIEN, on est d'accord ^_^
LD B,D : LD C,E ; BC = DE
LD B,H : LD C,L ; BC = HL
LD D,B : LD E,C ; DE = BC
LD D,D : LD E,E ; DE = DE
LD D,H : LD E,L ; DE = HL
LD H,B : LD L,C ; HL = BC
LD H,D : LD L,E ; HL = DE
LD H,H : LD L,L ; HL = HL


Instructions fictives
LD BC,(IX+n) ; lecture 16 bits d'un registre à l'adresse indirecte
LD DE,(IX+n)
LD HL,(IX+n)
LD (IX+n),BC
LD (IX+n),DE
LD (IX+n),HL
LD BC,(IY+n) ; version avec IY
LD DE,(IY+n)
LD HL,(IY+n)
LD (IY+n),BC
LD (IY+n),DE
LD (IY+n),HL

correspondant en réalité à
LD B,(IX+n+1) : LD C,(IX+n)
LD D,(IX+n+1) : LD E,(IX+n)
LD H,(IX+n+1) : LD L,(IX+n)
LD (IX+n+1),B : LD (IX+n),C
LD (IX+n+1),D : LD (IX+n),E
LD (IX+n+1),H : LD (IX+n),L
LD B,(IY+n+1) : LD C,(IY+n) ; version avec IY
LD D,(IY+n+1) : LD E,(IY+n)
LD H,(IY+n+1) : LD L,(IY+n)
LD (IY+n+1),B : LD (IY+n),C
LD (IY+n+1),D : LD (IY+n),E
LD (IY+n+1),H : LD (IY+n),L


Instruction fictive
LD HL,SP

correspondant en réalité à
LD HL,0 : ADD HL,SP ; Attention, les flags sont modifiés!


Instructions fictives
SRL BC
SRL DE
SRL HL
;------------------------------------------
SRA BC
SRA DE
SRA HL
;------------------------------------------
SLL BC
SLL DE
SLL HL
;------------------------------------------
SLA BC
SLA DE
SLA HL
;------------------------------------------
RR BC
RR DE
RR HL
;------------------------------------------
RL BC
RL DE
RL HL
;------------------------------------------
RRC BC
RRC DE
RRC HL
;------------------------------------------
RLC BC
RLC DE
RLC HL
;------------------------------------------
SRL8 BC
SRL8 DE
SRL8 HL
SRL8 IX
SRL8 IY

correspondant en réalité à
SRL B : RR C
SRL D : RR E
SRL H : RR L
;------------------------------------------
SRA B : RR C
SRA D : RR E
SRA H : RR L
;------------------------------------------
SLL B : RL C
SLL D : RL E
SLL H : RL L
;------------------------------------------
SLA B : RL C
SLA D : RL E
SLA H : RL L
;------------------------------------------
RR B
RR D
RR H
;------------------------------------------
RL B : RL C
RL D : RL E
RL H : RL L
;------------------------------------------
SRL B : RR C : RL B : RRC B
SRL D : RR E : RL D : RRC D
SRL H : RR L : RL H : RRC H
;------------------------------------------
SLA B : RL C : RR B : RLC B
SLA D : RL E : RR D : RLC D
SLA H : RL L : RR H : RLC H
;------------------------------------------
LD C,B : LD B,0
LD E,D : LD D,0
LD L,H : LD H,0
LD XL,XH : LD XH,0
LD YL,YH : LD YH,0