Vous êtes sur la page 1sur 5

Modes d’adressage 6809

I. Introduction :
La principale tache du μp6809 consiste à traiter les données contenues dans les mémoires
Le μp6809 comporte ainsi plusieurs possibilités différentes pour spécifier une adresse de donnée. L'ensemble de ces
possibilités constitue les modes d'adressage du μp6809
Le microprocesseur 6809 possède 59 instructions de base. Combinées avec le jeu des modes d’adressage (9 au total), elles
fournissent 1464 codes opératoires différents

II. Les modes d'adressage sont :


 L’adressage inhérent ou implicite
 L’adressage immédiat
 L’adressage direct
 L’adressage étendu
 L’adressage étendu indirect
 L’adressage relatif court
 L’adressage relatif long
 L’adressage par registre
 L’adressage indexé direct
 L’adressage indexé indirect

II.1 Adressage inhérent ou implicite : L’adressage inhérent est utilisé par les instructions qui agissent seulement sur les
registres internes du microprocesseur. Ici, le code opératoire de l’instruction contient toute l’information d’adressage
nécessaire.
Il existe deux types de mode d’adressage inhérent simple et inhérent paramétré

Inhérent simple :
Le code opération contient toute l'information nécessaire à l'exécution.
Exemples : ASL, ASR, CLR, INC.
CLRA (remise à zéro du contenu de l’accumulateur A) code objet 4F
Inhérent paramétré :
L'instruction comporte un octet supplémentaire POST-OCTET précise les registres intervenant dans l'instruction.
Échange et Transfert de registre EXG, TFR
Instructions d'accès aux piles PSHS, PSHU, PULS, PULU
Exemple : TFR X, Y (transfert de X dans Y). Post-octet transfert/échange

II.2 Adressage immédiat : La donnée se trouve immédiatement après le code opératoire de l’instruction. (Le code
opératoire est immédiatement suivi en mémoire de la donnée sur laquelle porte l’opération). Le symbole # est une
directive du mode d’adressage immédiat.

Page 1
Modes d’adressage 6809

Exemple : LDA #$35 Exemple : LDY#$1997

II.3 Adressage direct : On exprime le lieu de l'action par l'expression de l'adresse effective.
Le code opérande indique la partie basse de cette adresse. La partie haute de l’adresse est fournie par le contenu du Registre
Direct de Page (DP).
Ce mode nécessite moins de place mémoire (1 octet donc taille mémoire réduite) par conséquent l’exécution de
l’instruction est plus rapide.

Exemple : LDA $97 Charge l'Accumulateur A avec le Exemple : LDY $97 Charge le registre Y avec le contenu
contenu dont l'adresse est formée par [DP] et l'opérande sur 16 bits dont les adresses sont [DP] et partie basse et
partie basse+1.

II.4 Adressage direct étendu : On exprime le lieu de l'action par l'expression de l'adresse effective. Le contenu des deux
octets qui suivent immédiatement le code opératoire spécifié représente l’adresse (16bits) de la donnée. L'instruction
occupe de 3 à 4 octets.

Exemple : LDA $1997 Charge l’accumulateur A avec Exemple : LDY $1997 Charge le registre Y avec le
le contenu de l’adresse 1997. contenu de l’adresse 1997.

Page 2
Modes d’adressage 6809

Adressage étendu indirect : Identique au mode d’adressage direct étendu mais on accède à la donnée en passant par une
adresse intermédiaire spécifiée après le code opératoire. Les deux octets qui suivent le code opératoire pointent une adresse
dont le contenu représente l’adresse de la donnée recherchée. Le code opératoire est formé de deux octets - le post-octet est
toujours $9F.

Exemple : LDA [$1997] Chargement de Exemple : LDY [$1997] Chargement du registre Y avec le
l’accumulateur A avec le contenu dont l’adresse se contenu dont l'adresse (partie haute) se trouve en $1997.
trouve en 1997-1998.

Adressage indexé : Deux possibilités : adressage indexé direct et indirect


Dans ce mode, les registres pointeurs (X, Y, U, S et PC) sont utilisés pour effectuer le calcul de l’adresse effective de la
donnée recherchée.
Il existe 5 types d’adressage indexé : l'adressage indexé avec déplacement nul, l'adressage indexé avec déplacement
constant (non nul), l'adressage indexé avec déplacement accumulateur, l'adressage indexé relatif au Compteur Programme
(PC) et l'adressage indexé avec auto-incrémentation/décrémentation.
Adressage relatif : Technique d’adressage utilisée avec les instructions de branchement conditionnel ou non.
Le code opératoire représente le test et le type de branchement (court ou long) à réaliser.
Le code opérande représente le déplacement signé qui est ajouté au contenu du PC.

Adressage indexé direct :


Adressage indexé à déplacement nul : Le registre pointeur contient l’adresse effective de la donnée. Un chargement
préalable du registre est impératif.
Exemple : LDA,X Chargement de l’accumulateur A avec le contenu dont l’adresse se trouve en registre X.

indexé à déplacement constant : L’adresse effective de la donnée est la somme du déplacement (constante en complément
à deux).

Page 3
Modes d’adressage 6809

Exemples :
LDA -2,X Code A6 1E LDA 53,X Code A6 88
Adressage indexé avec déplacement accumulateur : Ce mode est semblable au mode précédent excepté que la valeur du
déplacement (exprimé en complément à 2) se trouve dans un accumulateur.
Exemple : LDA B,X Chargement du registre A avec le Exemple : LDX D,Y Charge le registre X avec le contenu
contenu se trouvant à l'adresse exprimée par la somme des se trouvant à l'adresse
contenus des registres B et X. exprimée par la somme des contenus des registres D et X
ainsi que D+1et X.

Adressage indexé relatif au compteur-programme (PC) : Un programme qui contient des instructions exprimées dans le
mode étendu ou direct, faisant référence à des adresses situées à l‘intérieur de sa zone d’implantation en mémoire ne pourra
pas être exécuté si l’on transfère son code objet dans une autre zone mémoire.
Exemple
LDA $FO,PC Code A6 Chargement de l’accumulateur A avec le contenu mémoire dont l’adresse est la valeur
8C de PC + $FO.
F0
Adressage indexé avec auto-incrémentation/décrémentation : Le registre concerné contient l’adresse de la donnée. En
plus de l'utilisation en mode indexé avec déplacement nul, il est possible de modifier le contenu du registre selon le
mécanisme suivant :
La pré-décrémentation : Le pointeur est décrémenté de un ou deux avant utilisation.
La post-incrémentation : Le pointeur est incrémenté de un ou de deux après utilisation.
Dans tous les cas, le contenu du registre est modifié.
Exemples :
LDA,-X Code A6 Chargement de l'accumulateur A avec le contenu se trouvant à l'adresse exprimée par le
82  contenu de X décrémenté de 1.
LDY,--X Code 10 Chargement du registre Y avec le contenu se trouvant à l'adresse exprimée par le contenu de X
AE décrémenté deux fois.
83
LDA,X+ Code A6 Chargement de l'accumulateur A avec le contenu se trouvant à l'adresse exprimée par le
80 contenu de X. Après le chargement, le contenu de X est incrémenté de 1.
LDD,X++ Code EC Chargement de l'accumulateur D avec le contenu se trouvant à l'adresse exprimée par le
81 contenu de X. Après le chargement, le contenu de X est incrémenté deux fois.
Adressage indexé indirect : Dans ce mode, l’Adresse Effective est contenue à l’emplacement indiqué par le contenu du
registre d’index utilisé auquel on additionne le déplacement.
Exemple : LDA [$960,X] Chargement de A avec le contenu mémoire dont l’adresse est le contenu de [X+960, X +961].

Page 4
Modes d’adressage 6809

Quelques exemples :
1- Adressage indexé indirect avec déplacement nul :
LDA [,X] Chargement de A avec le contenu mémoire dont l’adresse est [X, X+1].
2- Adressage indexé indirect avec déplacement constant :
LDA [$35,X] Chargement de A avec le contenu mémoire dont l’adresse est [X+$35, X+$36].
3- Adressage indexé indirect avec déplacement accumulateur :
Le déplacement exprimé en complément à deux est contenu dans A,B ou D.
LDU [D, Y] Chargement du registre U avec le contenu mémoire dont l’adresse est [Y+D] et [Y+D+1]
4- Adressage indexé indirect relatif au compteur programme : Les déplacements sont codés sur 8 ou 16 bits en complément
à 2.
LDA [$1997, PC] Chargement de A avec la valeur dont l’adresse est la valeur issue de l'opération PC + $1997.
5- Adressage indexé indirect avec double auto-incrémentation/décrémentation :
ADDA [, U++] Addition du contenu de A et du contenu-mémoire dont l’adresse est [U] et [U+1], suivi de deux
incrémentations.

Page 5

Vous aimerez peut-être aussi