Registres.
Voici une liste des registres du Z80A avec une courte explication:
A
Le registre A est nommé "Accumulateur".
Il s'agit d'un registre 8 bits utilisé pour toute opération sur 8 bits.
Le résultat de ces opérations sera donc donné dans A.
La forme 16 bits de ce registre est le registre AF.
Cependant, F ne peut être modifié par aucune instruction directement et ce registre ne saurait être utilisé pour stocker des valeurs.
F
F est le registre des Flags.
Ce registre ne peut être lu directement dans sa globalité.
De même aucune instruction de chargement de registre n'existe pour lui. Vous ne pourrez le modifier entièrement que par un POP AF.
Chaque bit correspond à un flag qui eux peuvent être testés indépendamment.
Voir la documentation sur les Flags pour plus de précisions
H
H est un registre 8 bits pouvant être couplé avec le registre L afin de former le couple 16 bits HL.
L
L est un registre 8 bits pouvant être couplé avec le registre H afin de former le couple 16 bits HL.
HL
HL est un registre 16 bits formé par le couple 8 bits H et L.
Ce registre est utilisé pour toute opération sur 16 bits et contiendra leur résultat.
D
D est un registre 8 bits pouvant être couplé avec le registre E afin de former le couple 16 bits DE.
E
E est un registre 8 bits pouvant être couplé avec le registre D afin de former le couple 16 bits DE.
B
B est un registre 8 bits pouvant être couplé avec le registre C afin de former le couple 16 bits BC.
Le registre B est aussi utilisé par l'instruction DJNZ et sert alors de compteur de boucle.
C
C, est un registre 8 bits pouvant être couplé avec le registre B afin de former le couple 16 bits BC.
IX
IX est un registre 16 bits indexé.
Certaines instructions permettent d'adresser Le poids fort (parfois noté IXH) ou le poids faible (parfois noté IXl)de ce registre.
IX étant indexé, les instructions l'utilisant pourront pointer sur des adresses à -128 et +127 de l'adresse pointée par IX.
le bit 7 à 1 signifie que le nombre est négatif.
IY
IY est un registre 16 bits indexé.
Certaines instructions permettent d'adresser Le poids fort (parfois noté IYH) ou le poids faible (parfois noté IYL) de ce registre.
IY étant indexé, les instructions l'utilisant pourront pointer sur des adresses à -128 et +127 de l'adresse pointée par IX.
le bit 7 à 1 signifie que le nombre est négatif.
I
Ce registre très particulier est utilisé puisqu'il n'est utilisé qu'en mode d'interruption IM2 et donne le poids fort de la table des vecteurs d'interruption.
PC
Le registre PC est le "program counter" ce registre contient l'adresse de l'instruction en court d'exécution.
Il ne peut donc pas être modifié directement ni utilisé pour stocker quoi que se soit
SP
SP est le registre de pointeur de pile et contient donc l'adresse du haut de la pile.
Ce registre peut être modifié pour changer la pile de place.
SP est décrémenté deux fois lors d'une instruction POP et incrémenté deux fois lors d'une instruction PUSH.
R
Le registre R est le registre de rafraichissement mémoire.
Sa valeur est incrémentée de 1 ou de 2 en fonction de l'instruction lue par le Z80.
Registres secondaires
Les registres AF, HL, DE, HL existent en double. On les nommera AF', HL', DE', BC'.
On pourra passer d'une plage de registres à l'autre avec l'instruction EX AF,AF'.
L'instruction EXX, elle, changera la plage de registres en excluant AF.
Ainsi seuls HL, DE et BC seront concernés. On obtiendra donc AF, HL', DE', BC'.