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 »).
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
↑Programmer en langage machine sur PC, Hölger Schäkel, Micro Application, 1991. Chapitre 2.