CODINGApprendre pas à pas la programmation en assembleur Z80 ★ Programmation avancée, routines utiles ★

Super instructions

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



★ ANNÉE: 2025
★ AUTEUR: Roudoudou

Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.732-desktop/c
Page créée en 289 millisecondes et consultée 6 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.