Microcontroleur - adressage Lycée SARDA GARRIGA 2/3 S SI Section GENIE ELECTRIQUE
LDY $1A
Avant Après
Y 264B 351F
A la position mémoire $1A, il y a la valeur suivante :
35
A la position mémoire $1B, il y a la valeur suivante :
1F
Petite explication : Y étant un registre de 16 bits, il faut qu'il y ait la même nombre de bits ; les bits de poids faibles du
registre Y seront complétés en prenant la valeur à l'octet suivant dans la mémoire (l'octet 1B).
3. Adressage étendu
Ah, Ah J ! bien ici c'est pareil que l'adressage direct sauf que l'adresse est cette fois ci codée sur 16 bits. Cela étend
l'espace d'adressage à 64Ko. Souvenez vous ces chapitres précédents : le bus d'adresse d'un 68HC11 est de 16 bits, donc
celui-ci peut gérer une mémoire externe (RAM, EEPROM etc...) de 64Ko maximum, soit 65536 octets. Un petit exemple
pour la route, un peu compliqué, il utilise le registre D, c'est à dire A + B :
LDD $425A
Avant Après
D 0000 351F
A la position mémoire $425A, il y a la valeur suivante :
35
A la position mémoire $425B, il y a la valeur suivante :
1F
Toujours pareil, le registre D faisant 16 bits on prend la donnée à l'adresse puis à l'adresse+1. Nous avons donc A qui
contient $35 et B qui contient $1F.
4. Adressage indexé
Dans ce mode, l'adresse de l'opérande est obtenue par addition du contenu d'un registre d'index (X ou Y) désignée dans
l'instruction, et d'une valeur non signée 8 bits contenue dans l'instruction. Un exemple pour clarifier tout ça :
LDAA X+0
Avant Après
A 5B 42
Dans le registre X il y a la valeur suivante :
425A
A la position mémoire $425A, il y a la valeur suivante :
19
Là on cherche à l'adresse X+0, soit X. En assembleur, on marquera X simplement ; marquer X+0 fonctionne aussi mais ça
sert à rien. Un dernier exemple :
STAB Y+2
Dans le registre B il y a la valeur suivante :
ED