À retenir
- Le calcul de l'adresse se fait AVANT l'accès à la donnée.
- Combine une adresse de base (registre) et un écart (déplacement).
- Très utilisé pour la performance dans les microprocesseurs modernes.
Se dit d'une méthode utilisée par le processeur pour trouver une information en mémoire en calculant l'adresse finale avant d'effectuer l'opération. C'est comme si, pour trouver un appartement, vous preniez l'adresse de l'immeuble et ajoutiez le numéro de l'étage pour vous rendre directement à la bonne porte.
Étymologie
Issu du préfixe latin prae- (avant) et du mot index (qui indique). Ce terme est apparu avec l'évolution des architectures de processeurs (notamment RISC comme ARM) pour décrire des modes d'adressage complexes mais performants.
Exemples d'usage
- En langage assembleur ARM, une instruction comme
LDR R0, [R1, #4]qui lit une valeur située 4 octets après l'adresse contenue dans R1. - Le parcours d'un tableau de données où l'on accède à l'élément suivant en ajoutant un décalage à l'adresse de départ.
Cas d'usage
On retrouve ce concept principalement dans la programmation de bas niveau (assembleur) et la conception de compilateurs. Il est essentiel pour manipuler efficacement des structures de données comme les tableaux ou les listes, car il permet de pointer précisément vers un élément sans modifier l'adresse de base.
Bonnes pratiques
Lorsqu'on travaille au niveau du matériel, il faut veiller à ce que le décalage utilisé (l'index) ne dépasse pas les limites de la mémoire allouée, sous peine de provoquer un plantage (erreur de segmentation).
Synonymes
Antonymes
Conseil
Pour bien comprendre ce concept, visualisez une règle graduée : le mode préindexé consiste à dire 'va à 10cm, puis avance de 2cm et regarde ce qu'il y a là-bas'. C'est la base de la gestion efficace de la mémoire par les processeurs.
Questions fréquentes
Quelle est la différence avec l'adressage postindexé ?
Dans le mode préindexé, le décalage est appliqué avant la lecture/écriture. Dans le postindexé, on utilise l'adresse actuelle d'abord, puis on lui applique le décalage pour la préparer à l'opération suivante.
Est-ce que j'utilise le préindexage en Python ou Java ?
Directement non, car ces langages gèrent la mémoire pour vous. Cependant, le compilateur ou l'interpréteur de ces langages utilise ce mode au niveau du processeur pour accéder aux éléments de vos listes ou objets.