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