Section courante

A propos

Section administrative du site

Les registres des microprocesseurs

Voici un tableau de référence des différents registres des microprocesseur 80x86 :

Nom Description Taille Prérequis
AH Ce nom permet d'indiquer la partie haute du registre accumulateur. 8 bits 8086+
AL Ce nom permet d'indiquer la partie basse du registre accumulateur. 8 bits 8086+
AX (appelé AW dans la série NEC) Ce nom permet d'indiquer le registre accumulateur. 16 bits 8086+
BH Ce nom permet d'indiquer la partie haute du registre de base. 8 bits 8086+
BL Ce nom permet d'indiquer la partie basse du registre de base. 8 bits 8086+
BP Ce nom permet d'indiquer le registre d'offset de base. 16 bits 8086+
BX (appelé BW dans la série NEC) Ce nom permet d'indiquer le registre de base. 16 bits 8086+
CH Ce nom permet d'indiquer la partie haute du registre de compteur. 8 bits 8086+
CL Ce nom permet d'indiquer la partie basse du registre de compteur. 8 bits 8086+
CR0 Ce nom permet d'indiquer le registre de contrôle 0. 32 bits 80386+
CR1 Ce nom permet d'indiquer le registre de contrôle 1. 32 bits 80386+
CR2 Ce nom permet d'indiquer le registre de contrôle 2. 32 bits 80386+
CR3 Ce nom permet d'indiquer le registre de contrôle 3. 32 bits 80386+
CR4 Ce nom permet d'indiquer le registre de contrôle 4. 32 bits 80386+
CS Ce nom permet d'indiquer le registre de segment de code d'instruction machine. 16 bits 8086+
CX (appelé CW dans la série NEC) Ce nom permet d'indiquer le registre de compteur. 16 bits 8086+
DH Ce nom permet d'indiquer la partie haute du registre de données. 8 bits 8086+
DI (appelé IY dans la série NEC) Ce nom permet d'indiquer le registre d'offset de destination de données. 16 bits 8086+
DL Ce nom permet d'indiquer la partie basse du registre de données. 8 bits 8086+
DS Ce nom permet d'indiquer le registre de segment de données. 16 bits 8086+
DX (appelé DW dans la série NEC) Ce nom permet d'indiquer le registre de données. 16 bits 8086+
EAX Ce nom permet d'indiquer le registre accumulateur étendue. 32 bits 80386+
EBX Ce nom permet d'indiquer le registre de base étendue. 32 bits 80386+
ECX Ce nom permet d'indiquer le registre de compteur étendue. 32 bits 80386+
EDI Ce nom permet d'indiquer le registre d'offset de destination de données étendue. 32 bits 80386+
EDX Ce nom permet d'indiquer le registre de données étendue. 32 bits 80386+
ESI Ce nom permet d'indiquer le registre d'offset de source de données étendue. 32 bits 80386+
ES Ce nom permet d'indiquer le registre de segment supplémentaire. 16 bits 8086+
RFLAGS/EFLAGS/FLAGS Ce nom permet d'indiquer le registre de drapeaux. 16 bits/32 bits/64 bits 8086+
FS Ce nom permet d'indiquer le registre de segment supplémentaire FS. 16 bits 80386+
GS Ce nom permet d'indiquer le registre de segment supplémentaire GS. 16 bits 80386+
IP Ce nom permet d'indiquer le registre d'offset du code d'instruction machine. 16 bits 8086+
MM0 Ce nom permet d'indiquer le registre MMX 0. 64 bits Pentium MMX+
MM1 Ce nom permet d'indiquer le registre MMX 1. 64 bits Pentium MMX+
MM2 Ce nom permet d'indiquer le registre MMX 2. 64 bits Pentium MMX+
MM3 Ce nom permet d'indiquer le registre MMX 3. 64 bits Pentium MMX+
MM4 Ce nom permet d'indiquer le registre MMX 4. 64 bits Pentium MMX+
MM5 Ce nom permet d'indiquer le registre MMX 5. 64 bits Pentium MMX+
MM6 Ce nom permet d'indiquer le registre MMX 6. 64 bits Pentium MMX+
MM7 Ce nom permet d'indiquer le registre MMX 7. 64 bits Pentium MMX+
MXCSR Ce nom permet d'indiquer le registre de contrôle et d'état des instructions SSE. 32 bits SSE+
R0 Ce nom permet d'indiquer le registre 0 du coprocesseur mathématique. 80 bits 8087+
R1 Ce nom permet d'indiquer le registre 1 du coprocesseur mathématique. 80 bits 8087+
R2 Ce nom permet d'indiquer le registre 2 du coprocesseur mathématique. 80 bits 8087+
R3 Ce nom permet d'indiquer le registre 3 du coprocesseur mathématique. 80 bits 8087+
R4 Ce nom permet d'indiquer le registre 4 du coprocesseur mathématique. 80 bits 8087+
R5 Ce nom permet d'indiquer le registre 5 du coprocesseur mathématique. 80 bits 8087+
R6 Ce nom permet d'indiquer le registre 6 du coprocesseur mathématique. 80 bits 8087+
R7 Ce nom permet d'indiquer le registre 7 du coprocesseur mathématique. 80 bits 8087+
R8 Ce nom permet d'indiquer le registre général étendue 64 bits. 64 bits Intel 64+
R9 Ce nom permet d'indiquer le registre général étendue 64 bits. 64 bits Intel 64+
R9 Ce nom permet d'indiquer le registre général étendue 64 bits. 64 bits Intel 64+
R10 Ce nom permet d'indiquer le registre général étendue 64 bits. 64 bits Intel 64+
R11 Ce nom permet d'indiquer le registre général étendue 64 bits. 64 bits Intel 64+
R12 Ce nom permet d'indiquer le registre général étendue 64 bits. 64 bits Intel 64+
R13 Ce nom permet d'indiquer le registre général étendue 64 bits. 64 bits Intel 64+
R14 Ce nom permet d'indiquer le registre général étendue 64 bits. 64 bits Intel 64+
R15 Ce nom permet d'indiquer le registre général étendue 64 bits. 64 bits Intel 64+
RAX Ce nom permet d'indiquer le registre accumulateur étendue 64 bits. 64 bits AMD64+, Intel 64+
RBP Ce nom permet d'indiquer le registre de pointeur de base étendue 64 bits. 64 bits AMD64+, Intel 64+
RBX Ce nom permet d'indiquer le registre de base étendue 64 bits. 64 bits AMD64+, Intel 64+
RCX Ce nom permet d'indiquer le registre de compteur étendue 64 bits. 64 bits AMD64+, Intel 64+
RDI Ce nom permet d'indiquer le registre d'offset de destination étendue 64 bits. 64 bits AMD64+, Intel 64+
RDX Ce nom permet d'indiquer le registre de données étendue 64 bits. 64 bits AMD64+, Intel 64+
RIP Ce nom permet d'indiquer le registre d'accès relatifs au pointeur d'instruction. 64 bits AMD64+, Intel 64+
RSI Ce nom permet d'indiquer le registre accumulateur étendue 64 bits. 64 bits AMD64+, Intel 64+
RSP Ce nom permet d'indiquer le registre accumulateur étendue 64 bits. 64 bits AMD64+, Intel 64+
SI (appelé IX dans la série NEC) Ce nom permet d'indiquer le registre d'offset de source de données. 16 bits 8086+
SP Ce nom permet d'indiquer le registre de déplacement (OFFSET) de la pile. 16 bits 8086+
SS Ce nom permet d'indiquer le registre de segment de la pile. 16 bits 8086+

Les registres par langages de programmation

Voici un tableau de référence celons des langages évoluées comme le C, C++ et Turbo Pascal :

Nom Variable en C Type de données C Type de données Pascal Structure de données C Structure de données Pascal
AH _AH unsigned char BYTE regs.h.ah Registers.AH
AL _AL unsigned char BYTE regs.h.al Registers.AL
AX _AX unsigned int WORD regs.x.ax Registers.AX
BH _BH unsigned char BYTE regs.h.bh Registers.BH
BL _BL unsigned char BYTE regs.h.bl Registers.BL
BP _BP unsigned int WORD regs.x.bp Registers.BP
BX _BX unsigned int WORD regs.x.bx Registers.BX
CH _CH unsigned char BYTE regs.h.ch Registers.CH
CL _CL unsigned char BYTE regs.h.cl Registers.CL
CS _CS unsigned int WORD regs.x.cs  
CX _CX unsigned int WORD regs.x.cx Registers.CX
DH _DH unsigned char BYTE regs.h.dh Registers.DH
DI _DI unsigned int WORD regs.x.di Registers.DI
DL _DL unsigned char BYTE regs.h.dl Registers.DL
Drapeaux _FLAGS unsigned int WORD regs.x.flags Registers.Flags
DS _DS unsigned int WORD regs.x.ds Registers.DS
DX _DX unsigned int WORD regs.x.dx Registers.DX
ES _ES unsigned int WORD regs.x.es Registers.ES
SI _SI unsigned int WORD regs.x.si Registers.SI
SP _SP unsigned int WORD regs.x.sp  
SS _SS unsigned int WORD regs.x.ss  

Références

Assembleur - Référence, Edition Micro Application, Pierre Maurette, 2003, ISBN: 2-7429-3061-2, page 95, 99.
The Undocumented PC: A programmer's Guide to I/O, CPUs, and Fixed Memory Areas - Second Edition, Edition Addison-Wesley, Frank van Gilluwe, 1997, ISBN: 0-201-47950-8, page 46.
Intel® 64 and IA-32 Architectures Software Developer's Manuals, Volume 1: Basic Architecture, Order Number: 253665-032US, Septembre 2009, volume I, 3-17.

Dernière mise à jour : Samedi, le 2 août 2014