Zilog Z80 - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Les registres

On distingues deux catégories, les registres principaux et les registres secondaires qui, contrairement à leurs noms, ont une utilité réelle car ils servent de registres image quand les échanges sont indispensables lors des calculs.

Les registres principaux sont composés de deux familles : des registres simples, pouvant être couplés en registres pairs et des registres IX, IY, SP pouvant être dépareillés et indexés car contenant un I comme index. Les registres comportant des L signifient Low et ceux comportant des H signifient Hight.

Le registre A, est le plus important, il est appelé aussi accumulateur. De très nombreuses instructions en code machine se servent de ce registre. Il est très utilisé dans les opérations de comparaisons

Le registre F appelé « flag » ( drapeau en anglais). Il est le registre des calculs, il est composé de 8 bits qui sont autant de drapeaux. En voici quatre parmi les 8 :

  • le bit du signe ;
  • le bit de zéro ;
  • le bit de retenue (carry) ;
  • le bit de parité

Les registres B et C sont utilisés comme compteurs et en conjonction avec les registres D et E dans des opérations simples. Les registres H et L ont les mêmes propriétés et ont un appareil d'instruction très riche, ils sont utilisés pour contenir des adresses mémoire mais leurs capacités sont inférieures à celles du registre A. Comme les registres I et R.

Les registres IX et IY sont des registres pairs, ils peuvent êtres indexés et sont utiles pour les travaux sur des listes de tables. Pour le ZX 81, ils servaient à la gestion du système comme l'affichage, le programmeur en langage machine devait les restaurer après utilisation ce qui était un inconvénient sur cette machine.

Le registre SP, appelé stack pointer, est très utile pour ranger des résultats intermédiaires. PUSH et POP sont deux instructions clé de ce registre.

Composition du Z80

Ce microprocesseur a 16 sorties ce qui lui permet d'adresser 65536 octets, en théorie.

Il se compose de 5 parties :

  • une unité de contrôle ;
  • un compteur de programme ;
  • un registre d'instructions ;
  • une unité arithmétique et logique ;
  • 24 registres utilisateur.

Les familles d'instructions

La première famille se compose des octets de chargement LD ( load ) qui charge la mémoire dans un registre et inversement. Elle se compose aussi des instructions d'échange (EX) qui effectuent des échanges entre registres ou entre registres et valeurs.

La deuxième famille se compose d'instructions arithmétiques comme l'addition, la soustraction, la décrémentation et l'incrémentation.

La troisième famille se compose d'instructions logiques comme AND et OR qui effectuent des opérations en comparaison de deux registres bit à bit. AND transformera deux 1 en un seul 1, un 1 et un 0 en un 0 etc...XOR a une valeur de ou exclusif et CPN lève différents drapeaux du registre F selon les résultats.

La quatrième famille se compose d'instructions de branchements conditionnels et inconditionnels qui commandent des ruptures de séquence : JR ( saut relatif), JP (saut simple), CALL, RST qui renvoient à un endroit du code machine comme les instruction en basic GOTO et GOSUB, RET qui ferme la boucle comme l'instruction basic RETURN.

Ensuite, il y a les familles d'instructions de pile ( stockage sur pile et dépilage ), les familles d'instructions de rotation qui modifient le décompte des bits dans un registre , les familles d'instructions de bit travaillant sur un bit particulier, les familles d'instructions d'entrée-sortie, les familles d'instructions d'interruption, les familles d'instructions de transfert etc...

Page générée en 0.143 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise