Académique Documents
Professionnel Documents
Culture Documents
Microcontroleur
Microcontroleur
Adresses 16 bits
Données 8 bits
Mémoires Periphériques
Microcontrôleur 68HC11
Œ Rôle du µC
La seule fonction du µP est de prendre des données, de les traiter, puis de les renvoyer vers
les périphériques ou les mémoires.
b7 b0
S X H I N Z V C
Le registre CCR est positionné par l’instruction en cours, à la fin de son traitement par le
processeur. Bien qu’on puisse regrouper différentes instructions entre elles de manière à
connaître leur résultat vis à vis de ce registre, chaque instruction va influencer sur le CCR
d’une manière qui lui est propre. Pour lever le moindre doute, le seul recours est le jeu
d’instructions fourni par le constructeur qui fait état des bits suite à une instruction donnée.
Ex : LDAA #255
INCA ici A=0
et V=1
En effet, il y a débordement car la valeur de A devrait
être 256 ce que ne peut stocker un registre 8 bits, et qui
passe donc à 0.
å H ( Half Carry = demi retenue ) : utilisé lors des calculs DCB ( Décimal Codé
Binaire ).
• Y : Idem au registre X.
Cependant, les instructions concernant ce registre sont codées avec un octet
supplémentaire par rapport au registre X, et donc, prennent un cycle machine en plus
lors de leur exécution.
Fonctionnement de la pile :
donnée 8 bits
Sauvegarde dans la Chargement à partir de la
pile pile
Octet → ( SP ) SP ← SP+1
SP ← SP-1 ( SP ) → Octet
donnée 16 bits
Sauvegarde dans la Chargement à partir de la
pile pile
Octet → ( SP ) SP ← SP+1
SP ← SP-1 ( SP ) → Octet
Octet → ( SP ) SP ← SP+1
SP ← SP-1 ( SP ) → Octet
Ex : LDS #$FF Initialisation de la pile
LDAA#$33
LDX #$1234
PSHA Stockage dans la pile ( on empile )
PSHX
1ère phase FC XX
Stockage poids faible FD XX
→ FE XX
Pointeur S Adresse Mémoire FF 34
2ème phase → FD XX
Stockage poids fort FE 12
FF 34
Pointeur S Adresse Mémoire
FC XX
PULX Chargement à partir de la pile ( on dépile )
LDAA #$80 86 80
Œ Adressage inhérent
Dans ce mode, les instructions n’ont ni opérande, ni « saut relatif », elles se suffisent à elles
mêmes.
Ex : CLRA
COMA
ABA
ABX
etc.
• Adressage immédiat
Ž Adressage étendu
Ex : LDAA $3000
ANDA $3001
STAA $3002
Contenu de la mémoire :
• Adressage direct
Les 8 bits de poids fort qui manquent pour reconstituer l’adresse sont définis, sur des
µP tel que le 6809, dans un registre spécifique DP ( Direct Page ).
Suivant la valeur de DP, on accédera à différents blocs mémoires de 256 octets chacun.
Ex :
Sur le HC11, le registre DP n’existe pas ! La valeur de l’octet de poids fort est nulle.
• Adressage indexé
Ce mode utilise le même principe que l’adressage étendu, mais ici l’adresse est contenue dans
un index 16 bits : X ou Y.
Ex :
$1000 66 $009A 51
$009B 52
LDY #$009A
INY
LDAB ,Y B ← 52
LDAB 0,Y
Après avoir tapé LDAB ,Y dans le code source.
Remarque : Le déplacement est codé sur un octet non signé. Ainsi, il ne peut être que
positif et compris entre 0 et 255.
Ex :
Adresse Contenu
X 03
X+1 04
X+2 05
LDAA $02 ,X A ← 05
Valeur de A ? Valeur de X ?
Réponses : A=00
X=55xx xx = octet indéterminé
Ex :
LDX # $10
STX $100
A registre 8 bits, donc IMPOSSIBLE car le format de la donnée est supérieur à 8 bits.
LDAA #$FF
STAA $100
Adresse Contenu
$0100 $FF
‘ Adressage relatif
Lorsque le processeur exécute LDAA #01, qui se trouve à l’adresse B600, le PC pointe sur
l’instruction suivante, soit PC = B602.
L’opérande d’une telle instruction indique en fait la valeur à ajouter au PC pour effectuer le
saut.
B605
Le branchement vaudra donc B602-B605 = -03, soit sur 1 octet signé $F9.
Donc xx = $F9.
Donc xx = 03.