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