Comment Ca Marche l'informatique ?
Accueil
Forum
Aide
bordure
Page d'accueil
Ajouter aux favoris
Signalez une erreur
Ecrire à Jean-Francois Pillou
Présentation
Compilation
Instructions
Adressage
Instructions arithmétiques et logiques
Affectation
Branchements
Pile
Procédures
Segmentation de la mémoire
Liste des principales instructions
Version 2.0.3
modes d'adressage en assembleur Page précédente Page suivante Retour à la page d'accueil

On appelle "mode d'adressage" la manière dont la donnée est spécifiée dans une instruction. Selon le mode d'adressage la taille de l'instruction peut varier de 1 à 4 octets.

Il existe 5 modes d'adressage:

Le mode d'adressage implicite

Le mode d'adressage implicite correspond à une instruction ne comportant pas d'opérande. L'instruction est composée du code opération uniquement et sa taille peut varier entre 1 octet et 2 octets selon l'opération.

code opération (1 ou 2 octets)

Ce type d'instruction porte généralement sur des registres. Les opérations d'incrémentation ou de décrémentation d'un registre ont un mode d'adressage implicite.

Le mode d'adressage immédiat

On parle de mode d'adressage immédiat lorsque le code opérande contient une donnée. La taille de la donnée peut varier entre 1 et 2 octets.

code opération (1 ou 2 octets) code opérande (1 ou 2 octets)

Ce type d'instruction met en jeu un registre et une valeur (qu'il s'agisse d'une affectation, une addition, une soustraction ou bien même une comparaison), la taille de l'opérande dépendra donc du type de registre mis en jeu (1 octet pour un regsitre 8 bits, 2 pour un registre de 16 bits).
Dans le cas de l'instruction MOV BX, 8 l'opérande 8 sera codée sur 16 bits puisqu'il faut l'affecter à un registre 16 bits (BX).

Le mode d'adressage relatif

Ce type de mode d'adressage met en jeu un champ opérande contenant un entier relatif (sa taille est donc un octet).

code opération (1 octet) code opérande (1 octet)
On l'utilise pour les opérations de saut, l'entier relatif est appelé déplacement, il correspond à la longueur du saut que le processeur doit effectuer dans les instructions.

Le mode d'adressage direct

Le code opérande d'une instruction en mode d'adressage direct, contrairement au mode d'adressage immédiat, contient l'adresse d'une donnée en mémoire (au lieu de contenir la donnée). Une adresse étant codée sur 16 bits, la taille du champ opérande est donc de 2 octets.

code opération (1 ou 2 octets) code opérande (2 octets)

Il peut s'agir par exemple de l'affectation à un registre d'une donnée contenue dans une case mémoire. Ce mode d'adressage provoque un temps d'exécution de l'instruction plus long car l'accès à la mémoire principale est plus long que l'accès à un registre.

Le mode d'adressage indirect

Le mode d'adressage indirect permet d'accéder à une donnée par l'intermédiaire d'un registre (le registre BX) qui contient son adresse. Son utilité n'est pas apparente à ce stade, mais l'adressage indirect est très utile lors de l'utilisation de tableaux (parcours des cases d'un tableau) car il suffit d'incrémenter BX de la taille d'une case pour passer d'une case à une autre...

En adressage directe, on affecte directement au registre accumulateur (AX) l'adresse d'une donnée
MOX AX, [110]

En adressage indirect, on affecte à AX l'adresse contenue dans le registre BX
MOV AX, [BX]

La notion d'adressage indirect sera mieux développée


Page précédente Page suivante

Ce document issu de CommentCaMarche.net est soumis à la licence GNU FDL. Vous pouvez copier, modifier des copies de cette page tant que cette note apparaît clairement.