Le type de donnée contenu dans le champ opérandes caractérise le mode d'adressage. Il existe
14 modes d'adressage distincts, déterminant le procédé utilisé permettant d'accéder à une donnée
avant son traitement.Les divers modes possibles peuvent être regrouper en cinq rubriques.
1/ Adressage absolu
Ce mode d'adressage est caractérisé par la présence dans l'instruction de l'adresse de l'opérande. Il existe deux variantes à ce mode : L'adressage absolu court et absolu long selon
que l'adresse de l'opérande est donnée sur 16 et inférieur ou supérieur à 16 Bits.
MOVE.L $1000,$2000 ( Abs. court ) - Tranfert 32Bits de la donnée présente en $1000 en $2000
MOVE.L $10000,$2000 ( Abs. long ) - Transfert 32Bits de la donnée présente en $10000 en $2000.
2/ Adressage direct de registres
Ce mode d'adressage est caractérisé par la présence dans le champ opérande en source ou en destination d'un registre interne.
MOVE.L A2,D1 - Tranfert de la valeur de A2 dans D0
3/ Adressage immédiat
Dans ce mode, la donnée à traiter est directement contenu dans l'instruction
MOVE.L #$10,D0 - Chargement dans D0 de la donnée #$10
4/ Adressage indirect de registres
Ces modes sont trés intéréssants pour le programmeur. Si vous programmez en C, vous devez connaitre les pointeurs. Et bien
c'est encore plus facile de les manipuler en assembleur 68000.
|
4.a/ Adressage indirect simple
Le registre d'adresse spécifié dans l'instruction contient l'adresse de l'opérande
MOVE.L (A0),D0 - Transfert de la valeur pointée par A0 dans D0
4.b/ Adressage indirect postincrémenté
La définition est la même que précédemment. Dans ce mode la valeur du registre d'adresse est modifié aprés
traitement de l'instruction. ici on a incrémentation le registre d'adresse aprés l'exécution de l'instruction.
MOVE.L (A0)+,D0 - Transfert de la valeur pointée par A0 dans D0 puis incrémentation de la valeur de A0. Cette valeur
d'incrémentation N dépend de la taille du transfert 32Bits (.L), on ajoute 4 (Long = 4 octets), 16 Bits (.W) on ajoute
2 ( Word = 2 Octets ) et 8Bits (.B) on ajoute 1 ( Byte = 1 Octet ).
On peut tout aussi bien écrire ceci. Attention, ça se complique un peu.
MOVE.L (A0)+,(A1)+ - Transfert de la valeur pointée par A0 à l'adresse spécifié par le contenu de l'adresse pointée par A1 puis
incrémentation des deux registres.
4.c/ Adressage indirect prédécrémenté
La définition est la même que précédemment. Dans ce mode la valeur du registre d'adresse est modifié aprés
traitement de l'instruction. ici on a décrémente le registre d'adresse avant l'exécution de l'instruction.
MOVE.L -(A0),D0 - Transfert de la valeur pointée par A0-N dans D0. idem pour la valeur de N, elle dépend de la taille du transfert
32Bits (.L), on enlève 4 (Long = 4 octets), 16 Bits (.W) on enlève 2 ( Word = 2 Octets ) et 8Bits (.B) on enlève 1 ( Byte = 1 Octet ).
MOVE.L -(A0),-(A1) - Transfert de la valeur pointée par A0-N à l'adresse spécifié par le contenu de l'adresse pointée par A1-N.
4.d/ Adressage indirect avec déplacement
La définition est la même que précédemment. Dans ce mode la valeur du registre d'adresse n'est pas modifié. Le micro fait la somme
en interne entre le déplacement est l'adresse spécifié par le registre d'adresse.
MOVE.L $200(A0),D0 - Transfert de la valeur pointée par A0+$200 dans D0.
4.e/ Adressage indirect indexé avec déplacement
La définition est la même que précédemment. Dans ce mode la valeur du registre d'adresse n'est pas modifié. Le micro fait la somme
en interne entre le déplacement, le contenu du registre d'index et l'adresse spécifié par le registre d'adresse.
MOVE.L $200(A0,D0),$200 - Transfert de la valeur pointée par A0 + $200 + D0 à l'adresse $200.
|
5/ Adressage relatif au compteur programme avec déplacement
Le principe de ce mode est le même que le précédent mais en travaillant avec le PC ( Program Counter ).
MOVE.L $10(PC),$200 - Transfert de la valeur pointée par le PC + $10 à l'adresse $200
Voilà pour l'essentiel, Il reste quelques subtilitées mais nous les analyserons plus tard. Attaquons maintenant le plus intéressant
: La programmation. La meilleure façon d'apprendre restant la pratique !!!!
|