À retenir
- L'adresse finale est la somme d'une base et d'un décalage.
- Le calcul de l'adresse se fait impérativement avant l'accès à la donnée.
- C'est un mode d'adressage très efficace pour les performances du processeur.
Se dit d'une méthode de calcul utilisée par le processeur pour trouver une donnée en mémoire. Avant d'accéder à l'information, l'ordinateur prend une adresse de référence (un registre) et lui ajoute un petit décalage (un offset) pour obtenir l'emplacement exact. C'est comme si, pour trouver un appartement, on vous donnait l'adresse de l'immeuble et qu'on vous demandait de monter de 3 étages avant de sonner à la porte.
Étymologie
Issu du préfixe latin prae- (« avant ») et du mot index (« ce qui montre »). En informatique, cela souligne que la modification de l'adresse cible se produit chronologiquement avant l'opération de lecture ou d'écriture en mémoire.
Exemples d'usage
- En langage assembleur ARM, l'instruction
LDR R0, [R1, #4]: elle charge dans le registre R0 la valeur située à l'adresse contenue dans R1, augmentée de 4 octets. - L'accès à un champ spécifique d'une structure en programmation C (ex:
utilisateur.age), où le compilateur calcule l'adresse du champ 'age' à partir du début de la structure 'utilisateur'.
Cas d'usage
Ce concept est omniprésent dans le développement de bas niveau (systèmes d'exploitation, pilotes) et l'optimisation de code. Il est particulièrement utile pour parcourir des tableaux ou manipuler des objets complexes en mémoire où chaque donnée est rangée à une distance précise du début.
Bonnes pratiques
Il faut être vigilant sur la taille des données (le déplacement se compte souvent en octets). Un piège classique consiste à oublier que certains processeurs peuvent mettre à jour l'adresse de base après le calcul (auto-incrémentation), ce qui peut décaler toutes les opérations suivantes si ce n'est pas voulu.
Synonymes
Antonymes
Conseil
Pour bien visualiser le concept, représentez-vous la mémoire vive comme une longue rue numérotée. Le mode pré-indexé, c'est décider de s'arrêter 5 maisons après le feu rouge pour trouver votre destination.
Questions fréquentes
Pourquoi utiliser le pré-indexé plutôt que l'adresse directe ?
Cela permet de manipuler des listes de données de manière dynamique. On garde une adresse fixe pour le début de la liste et on change juste le décalage pour accéder à n'importe quel élément.
Est-ce spécifique à certains processeurs ?
On retrouve ce concept sur presque toutes les architectures modernes (ARM, x86), car c'est une base fondamentale du fonctionnement des processeurs.
Quelle est la différence avec le post-indexé ?
En pré-indexé, on calcule puis on accède. En post-indexé, on accède à l'adresse actuelle, puis on la modifie pour préparer l'accès suivant.