Introduction à la programmation en assembleur (processeurs 64 bits de la famille 80x86)
4.1. Registres « pointeurs »
Définition

Toutes les structures de données avancées reposent sur le concept de pointeur.

Un pointeur est une case mémoire qui contient l'adresse d'une autre case mémoire. Comme on peut modifier le contenu du pointeur, on pourra accéder à différentes zones de la mémoire à partir d'une position initiale. Toutes les structures de données complexes reposent sur ce principe : tableaux, structures, matrices, etc.

Le seul registre « pointeur » que nous avons vu jusqu'à maintenant est rip. Il a un rôle très particulier et il n'est pas facilement utilisable pour d'autres tâches que celle de pointer sur l'instruction courante.

Les registres généraux rax, rbx, rcx et rdx peuvent servir comme pointeurs.

Deux autres registres RSI (Re-extended Source Index) et RDI (Re-extended Destination Index) sont souvent utilisés respectivement comme pointeur indiquant la source et comme pointeur indiquant la destination dans des opérations de copie de zones mémoires.

Enfin nous verrons plus loin le pointeur RSP (Re-extended Stack Pointer) et RBP (Re-extended Base Pointer) qui seront utilisés pour la gestion de la pile.