En architecture des ordinateurs, un registre est un emplacement de mémoire interne à un processeur. Les registres se situent au sommet de la hiérarchie mémoire : il s'agit de la mémoire au meilleur temps d'accès, mais dont le coût de fabrication est le plus élevé car la place dans un microprocesseur est limitée. Leur nombre dépasse les quelques Mo 2 à 3 sur la dernière génération de processeur en cache de niveau 2 et 3
Une architecture externe de processeur définit un ensemble de registres, dits architecturaux, qui sont accessibles par son jeu d'instructions. Ils constituent l'état externe (architectural) du processeur. Cependant, une réalisation donnée d'une architecture externe (microarchitecture) peut contenir un ensemble différent de registres, qui sont en général plus nombreux que les registres architecturaux. Ils stockent non seulement l'état externe du processeur, mais aussi celui de sa microarchitecture : valeurs opérandes, indicateurs, etc. Ce dernier état est utilisé exclusivement par la microarchitecture, et n'est pas visible par le jeu d'instructions (architecture).
La plupart des architectures modernes sont qualifiées de load-store : les programmes transfèrent d'abord des données de la mémoire centrale vers des registres, puis effectuent des opérations sur ces registres, et enfin transfèrent le résultat en mémoire centrale.
On rencontre souvent les registres suivants :
Certains registres sont destinés à stocker des adresses (les deux premiers dans la liste ci-dessus), d'autres des données.
Sur certaines architectures, tout ou partie des registres spécialisés sont remplacés par un ensemble de registres d'usage général interchangeables (parfois notés R0, R1, etc.). Par exemple, le Motorola 68000 dispose de 8 registres de données banalisés (D0 à D7) et de 8 registres d'adresses (A0 à A7, banalisés sauf A7 qui sert de pointeur de pile).
Il est possible de faire correspondre les registres avec des adresses mémoire, typiquement à partir de 0 (c’est-à-dire que les cases mémoire d'adresse 0 à 31 pourront correspondre aux registres R0 — R31). C'est par exemple le cas des 16 registres du PDP-10. Les programmeurs astucieux désirant optimiser le temps d'exécution d'une boucle de code avaient donc la possibilité de la stocker dans les registres. Cette méthode évidemment marginale et dépendante de l'architecture de l'ordinateur montre la versatilité des registres généraux.
Le 8088 comporte quatre registres généraux de 16 bits appelés AX, BX, CX, DX. Cependant, son jeu d'instructions comportes quelques spécialisations :
Il comporte également quatre registres de segment appelés :
Certains de ces registres peuvent se trouver dans le microprogramme du processeur. Sur architecture x86, pour le mode protégé :