Registres du x86

Un article de Wikipédia, l'encyclopédie libre.
Les registres d'un processeur Intel 386

Le 8086/8088 comporte quatre registres généraux de 16 bits appelés AX, BX, CX, DX. Cependant, son jeu d'instructions comporte quelques spécialisations[1] :

  • BX est utilisé comme registre d'index (adressage dit de base) ;
  • CX sert à contrôler des boucles introduites par l'instruction LOOP ;
  • DX est utilisé pour certaines divisions.

Il comporte également quatre registres de segment appelés :

  • CS (Code Segment) : sera utilisé chaque fois qu'il s'agit d'une adresse du « code » (du programme), c’est-à-dire de IP ;
  • DS (Data Segment) : sera utilisé chaque fois qu'il s'agit d'une adresse de « données », c'est-à-dire des variables du programme, autrement dit, tous les « registres de données » (AX, BX, CX, DX) et également SI pour les « instructions de string » (voir « ES » ci-dessous) ;
  • SS (Stack Segment) : utilisé avec les registres SP et BP ; la pile sert par exemple à garder en mémoire les contenus des registres CS et IP lors de l'exécution d'instructions call ou des interruptions ;
  • ES : utilisé essentiellement avec le registre DI pour les « instructions de string » (« string primitive instructions ») qui permettent des transferts d'emplacements en mémoire contigus (« en chaîne »).

Registres du mode protégé[modifier | modifier le code]

Certains de ces registres peuvent se trouver dans le microprogramme du processeur. Sur architecture x86, pour le mode protégé :

  • GDTR où est stockée l'adresse de la table globale de descripteurs (GDT) ;
  • LDTR où est stockée l'adresse de la Table locale de descripteurs (en) (LDT) du processus courant  ;
  • IDTR où sont stockées l'adresse et la taille de l'IDT (Interrupt Descriptor Table) ;
  • TR où est stockée l'adresse du TSS du processus courant ;
  • CR0 (Control Register 0 ou MSWR pour Machine Status Word Register) où sont stockés des indicateurs pour l'ensemble du système (activation de la segmentation et de la pagination entre autres) ;
  • CR3 (Control Register 3 ou PDBR pour Page Directory Base Register) où est stockée l'adresse du Page Directory courant (pagination).

Références[modifier | modifier le code]

  1. Programmer en langage machine sur PC, Hölger Schäkel, Micro Application, 1991. Chapitre 2.