Leçons de niveau 14

Assembleur/Les registres processeur

Une page de Wikiversité.
Sauter à la navigation Sauter à la recherche
Début de la boite de navigation du chapitre
Les registres processeur
Icône de la faculté
Chapitre no 4
Leçon : Assembleur
Chap. préc. :Fonctionnement des exécutables
Chap. suiv. :Les instructions processeur
fin de la boite de navigation du chapitre
Icon falscher Titel.svg
En raison de limitations techniques, la typographie souhaitable du titre, « Assembleur : Les registres processeur
Assembleur/Les registres processeur
 », n'a pu être restituée correctement ci-dessus.

Les registres du processeur[modifier | modifier le wikicode]

Les registres du processeur sont des cases mémoire. Toutes les instructions du processeur passent par ces registres pour les opérations (calcul arithmétique/logique, transfert, entrée/sortie). La taille des registres dépend des processeurs, dans notre cours les processeurs de la famille x86 ont des registres de 16 bits. Le programmeur n’est pas obligé d’utiliser toute la taille du registre. Il peut accéder seulement aux parties basses ou hautes des registres (on remplacera AX par AL pour la partie basse et AX par AH pour la partie haute).

Les registres généraux[modifier | modifier le wikicode]

Ils servent principalement aux calculs :

  • AX, correspond à l'accumulateur
  • BX, au registre de base
  • CX, au compteur
  • DX, à l'extension de l'accumulateur

Les registres d'adressage[modifier | modifier le wikicode]

Ils servent aux adressages d'opérandes :

  • SI, index de source
  • DI, index de destination
  • BP, pointeur de base

Les registres de commande[modifier | modifier le wikicode]

  • SP, pointeur de la pile
  • IP, pointeur d'instruction
  • FLAGS, registre d'état

Le registre d'état contient toutes les informations servant à contrôler le déroulement du programme :

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
XX XX XX XX OF DF IF TF SF ZF XX AF XX PF XX CF
  • L'indicateur de signe SF indique si le résultat de la dernière opération arithmétique ou logique est positif ou négatif.
  • L'indicateur de zéro ZF indique que le résultat de la dernière opération a été égal à zéro.
  • L'indicateur de parité PF indique si le nombre de uns du résultat est pair ou impair.
  • L'indicateur de retenue CF permet au processeur des opérations arithmétiques à plus grande précision.
  • L'indicateur de débordement OF
  • L'indicateur d'interruptions pas-à-pas TF aide aux mises au point des programmes.
  • L'indicateur d'interruption contrôle les interruptions externes.
  • L'indicateur de direction DF

Les registres de segment[modifier | modifier le wikicode]

  • CS, segmentation de code
  • DS, segmentation de données
  • SS, segmentation de pile
  • ES, segmentation de données supplémentaires