Les modes d'adressage dans un microprocesseur spécifient comment le CPU accède aux données en mémoire ou dans les registres. Ils déterminent où se trouve l’opérande d’une instruction. Différents modes d'adressage offrent différents degrés de flexibilité, d'efficacité et de complexité. Voici quelques modes d'adressage courants :
1. Adressage immédiat :
* Mécanisme : L'opérande est inclus directement dans l'instruction elle-même.
* Exemple : `ADD R1, #5` (Ajoutez la valeur immédiate 5 pour enregistrer R1).
* Avantages : Simple et rapide, car aucun accès mémoire n’est nécessaire pour récupérer l’opérande.
* Inconvénients : Limité à de petites valeurs constantes.
2. Adressage du registre :
* Mécanisme : L'opérande est situé dans un registre CPU.
* Exemple : `ADD R1, R2` (Ajouter le contenu du registre R2 au registre R1).
* Avantages : Très rapide, car les registres sont directement accessibles par le CPU.
* Inconvénients : Nombre limité d'opérandes disponibles (uniquement ceux dans les registres).
3. Adressage direct (adressage absolu) :
* Mécanisme : L'instruction contient l'adresse mémoire de l'opérande.
* Exemple : `LOAD R1, 1000H` (Charger le contenu de l'emplacement mémoire 1000H dans le registre R1).
* Avantages : Simple à comprendre et à mettre en œuvre.
* Inconvénients : Peut conduire à des tailles d'instructions plus grandes si de nombreux bits sont nécessaires pour spécifier l'adresse mémoire. Pas flexible pour accéder aux données de manière séquentielle.
4. Adressage indirect :
* Mécanisme : L'instruction contient l'adresse mémoire d'un *emplacement mémoire* qui contient l'adresse de l'opérande. Considérez-le comme un indicateur.
* Exemple : `LOAD R1, [2000H]` (Charger le contenu de l'emplacement mémoire dont l'adresse est stockée à l'emplacement mémoire 2000H dans le registre R1).
* Avantages : Permet la modification dynamique des adresses mémoire. Utile pour accéder aux structures de données telles que les tableaux.
* Inconvénients : Nécessite deux accès à la mémoire (un pour obtenir l'adresse, un pour obtenir les données). Plus lent que l’adressage direct.
5. Enregistrer l'adressage indirect :
* Mécanisme : L'instruction spécifie un registre qui contient l'adresse mémoire de l'opérande.
* Exemple : `LOAD R1, (R2)` (Charger le contenu de l'emplacement mémoire dont l'adresse est dans le registre R2 dans le registre R1).
* Avantages : Flexible et efficace pour accéder aux données dans des tableaux ou des emplacements de mémoire séquentiels. Plus rapide que l'adressage indirect utilisant l'emplacement mémoire.
* Inconvénients : Nécessite toujours un accès mémoire.
6. Adressage par déplacement (adressage de base + décalage) :
* Mécanisme : L'adresse effective est calculée en ajoutant un déplacement (décalage) au contenu d'un registre de base.
* Exemple : `LOAD R1, [R2 + 10]` (Charger le contenu de l'emplacement mémoire à l'adresse (R2 + 10) dans le registre R1).
* Avantages : Utile pour accéder aux éléments d'un tableau ou d'une structure de données par rapport à une adresse de base.
* Inconvénients : Nécessite une opération supplémentaire pour calculer l’adresse effective.
7. Adressage indexé :
* Mécanisme : Similaire à l'adressage par déplacement, mais le décalage est stocké dans un registre d'index.
* Exemple : `LOAD R1, [R2, R3]` (Charger le contenu de l'emplacement mémoire à l'adresse (R2 + R3) dans le registre R1). Le fonctionnement exact dépend de l'architecture ; parfois c'est R2 + R3, parfois une version à l'échelle de R3.
* Avantages : Très utile pour le traitement des tableaux. Permet un accès facile aux éléments du tableau à l’aide d’index.
8. Adressage de la pile :
* Mécanisme : L'opérande est situé en haut de la pile. Des instructions telles que « PUSH » et « POP » manipulent la pile.
* Avantages : Efficace pour les appels de sous-programmes, les arguments de fonction et la gestion des variables locales.
* Inconvénients : Accède uniquement directement au haut de la pile.
Ce sont les modes d'adressage les plus courants. Des microprocesseurs spécifiques peuvent mettre en œuvre des variantes ou des modes d'adressage supplémentaires. Le choix du mode d'adressage affecte la longueur de l'instruction, la vitesse d'exécution et la flexibilité de la programmation. Le mode d'adressage optimal dépend fortement de l'application et de l'architecture du microprocesseur.
|