Академический Документы
Профессиональный Документы
Культура Документы
Le 6809 est très complet au niveau des modes d’adressage. On appelle mode d’adressage la
façon dont les instructions accèdent aux opérandes (données situées en mémoire). La
plupart des instructions du 6809 supportent plusieurs types d’adressage.
Dans le mode d’adressage inhérent simple, le code opération contient toute l’information
nécessaire à l’exécution de l’instruction.
Exemple : CLRA,CLRB,INCA,INCB,LSRA,LSRB
Exemples :
TFR A,DP transfert de A dans DP
PSHS A,B,X sauvegarde dans la pile de A,B,X
2. Adressage immédiat
Dans ce mode d’adressage, le code opération est suivi directement de l’opérande. Ce type
d’adressage permet de charger les registres internes du microprocesseur avec la valeur de
l’opérande.
Instructions sur deux octets
Ce type d’instruction est réservé pour charger les registres internes de 8 bits.
Exemple :
LDA #$12 charger la valeur $10 dans l’accumulateur A
Le symbole ‘#’ signifie immédiat dans la syntaxe assembleur.
Instructions sur trois octets
Ce type d’instruction est réservé pour charger les registres internes de 16 bits.
Exemple :
LDX #$E000 charger la valeur $E000 dans le registre d’index X
Instructions sur quatre octets
Dans ce type d’instruction, le code opératoire utilise deux octets mémoires. Le troisième et
la quatrième contiennent la valeur de l’opérande de 16 bits.
KARIM Mohammed FSDM Fès Page 2 04/12/2007
Exemple :
LDY #$E000 charger la valeur $E000 dans le registre d’index Y
Remarque : le chargement immédiat est valable pour tous les registres internes à
l’exception du registre de page DP.
Pour charger $E0, à titre d’exemple, dans DP :
LDA #$E0
EXG A,DP échange des contenus de A et DP.
3. Adressage direct
Dans ce mode d’adressage, le code opération est suivi des 8 LSB de l’adresse dont les 8
MSB se trouvent dans le registre de page DP. Ce mode d’adressage est utilisé pour adresser
des pages en mémoire. Le registre DP spécifie le numéro de page.
Il suffit donc d’initialiser le registre de page DP pour pouvoir travailler en adressage direct
sur les 256 octets de la page choisie. A la mise sous tension, DP est mis à zéro.
Instructions sur deux octets
Le premier octet définit le code opératoire, le second les 8 LSB de l’adresse.
Exemple :
LDA $10 ou LDA <$10 charger l’accumulateur A avec le contenu de $E010
(DP=$10).
Le symbole ‘<’ signifie direct dans la syntaxe assembleur.
Instructions sur trois octets
Les deux premiers octets définissent le code opératoire, le troisième les 8 LSB de l’adresse.
Exemple :
LDY $10 charger le registre Y avec les contenus de $E010 et de $E011 (DP=$10).
4. Adressage étendu
Dans ce mode d’adressage, le code opération est suivi les deux octets constituant l’adresse
de l’opérande proprement dit.
Instructions sur trois octets
Le premier octet définit le code opératoire, les deux autres constituent l’adresse de
l’opérande.
Exemple :
LDA $E000 charger l’accumulateur A avec le contenu de $E000
Instructions sur quatre octets
Le code opératoire est défini par deux octets. Les deux autres constituent l’adresse de
l’opérande.
Exemple :
LDY $E000 chargement du registre Y avec le contenu de $E000
KARIM Mohammed FSDM Fès Page 3 04/12/2007
Ce mode d’adressage est utilisé par les instructions de branchement qui requièrent deux
octets : le premier est le code opération et le second spécifie le déplacement qui peut être
positif ou négatif. On pourra donc se déplacer de –128 ($80) octets en arrière et de +127 ($
7F) en avant, par rapport à la valeur du compteur ordinal (PC) à la fin du traitement de
l’instruction de branchement.
Exemple :
Ce mode d’adressage est réservé lui aussi aux instructions de branchement. Cette fois, les
instructions sont codées sur 4 octets : Les deux premiers représentent le code opératoire et
les deux autres spécifient le déplacement qui peut être positif ou négatif. On pourra donc se
déplacer de –32768 ($8000) octets en arrière et de +32767 ($7FFF) en avant, par rapport à
la valeur du compteur ordinal (PC) à la fin du traitement de l’instruction de branchement.
Exemple :
LBCC PAIR Si le bit de retenue est à 0, un branchement relatif long à l’étiquette
est alors exécuté.
8. Adressage indexé
Le principe de l’adressage indexé est que l’instruction spécifie une base (index) plus un
déplacement par rapport à cette base. On peut donc écrire :
RR
Registre de base : X 00
Registre de base : Y 01
Registre de base : U 10
Registre de base : S 11
KARIM Mohammed FSDM Fès Page 5 04/12/2007
Exemple :
Langage machine Langage assembleur
Instructions sur trois octets : le code opératoire est défini par deux octets. Le troisième
constitue le post octet
Exemple :
Langage machine Langage
assembleur
Exemple :
Langage machine Langage assembleur
Exemple :
Ce mode d’adressage est semblable au précédant sauf que cette fois-ci le déplacement est
contenu dans l’un des accumulateurs A,B ou D du 6809. L’adresse effective de la donnée
est la somme du contenu du registre de base et celui de l’accumulateur spécifiée dans
l’instruction. Le contenu initial du registre de base n’est modifié par l’addition. les
instructions sont codées sur 2 octets : le premier représente le code opératoire et le second
spécifie le post octet (tableau n°).
Post octet
Accumulateur A 1RR00110
Accumulateur B 1RR00101
Accumulateur D 1RR01011
Tableau n°
Exemple :
Langage machine Langage assembleur
Exemple :
(PC) + $F0
KARIM Mohammed FSDM Fès Page 8 04/12/2007
Adresse effective = contenu mémoire dont l’adresse de base est la somme du registre
d’index et le déplacement.
Tous les modes d’adressage indexé peuvent travailler en indirect sauf les modes auto-
incrémentation/décrémentation par un et le mode déplacement constant sur 5 bits.
Exemples :
LDA [ , X] chargement de A avec le contenu mémoire dont l’adresse de base est le contenu de
X
LDA [ $1000, X] chargement de A avec le contenu mémoire dont l’adresse de base est (X) + $1000