Le microcontroleur 8051
---------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------- ----------------------------------------------------------
7
LES MODES D'ADRESSAGE
Adressage Immédiat
Ce n'est pas réellement un adressage mais le remplissage d'une case mémoire avec un octet.
Cette opération est caractérisée par la présence du sigle # devant la valeur de l'octet à charger dans
le texte assembleur .
Exemple: MOV A,#40H Chargement de l'octet 40H dans l'accumulateur
MOV A,#40 chargerait 40 décimal soit 28H
MOV A,#11001101B charge le mot binaire
De même MOV P1,#80H envoie 80H sur le port P1
Toute case mémoire interne désignée par son adresse peut être chargée :
MOV 40H,#5AH 5AH est chargé dans la case 40H
Adressage direct
L'adresse n'a que 8 bits (soit 1 seul octet dans l'instruction ) Seule la RAM interne et le SFR
peuvent être adressés de cette manière:
Exemple: MOV A,45H chargement de l'accumulateur avec le contenu de la case d'adresse 45H
(mémoire interne) ( MOV A,45H E5 45)
MOV R0,30H A8 30 Chargement du registre R0 de la banque 0 (par défaut) avec
le contenu de la case 30H
MOV A,P1 E5 90 nous avons vu plus haut que le port 1 était matérialisé
dans la case 90H de la RAM interne. L'assembleur comprend la dénomination P1
pour désigner le port 1
ANL A,78 55 4E (4EH=78) Une opération ET est effectuée entre le contenu
de A et le contenu de la case mémoire 78 (4EH) (Interne)
Il n'existe pas d'adressage direct dans la RAM extérieure, l’instruction :
MOVX A,(0A568H)
qui chargerait dans A le contenu de la case externe A568H n'existe pas.
Adressage Indirect par registre
L'instruction spécifie un registre qui contient l'adresse .Les mémoires internes et externes
peuvent être mises en jeu par ce type d'adressage. Dans le cas d'un adressage sur 8 bits le registre
d'index peut être l'un des 2 registres R0 ou R1 choisi dans la "banque" activée,
L'adressage indirect est désigné dans l'assembleur par le signe at @
On notera que les cases du SFR ne sont pas accessibles par adressage indirect
Exemple: MOV A,@R0 Charge l'accumulateur avec le contenu de la case dont l'adresse est le
contenu du registre R0 de la banque active.
MOV @R1,P1 Lecture du port P1 et transfert de son contenu dans la case mémoire
dont l'adresse est le contenu du registre R1 de la banque active.
ANL A,@ R0 ((R0)) ∩ (A)⇒(A) ∩ désignant le NAND
L'adressage sur 16 bits ne concerne bien sûr que la mémoire extérieure. Le registre d'index
est le Data Pointer Register DPTR localisé en 82H(DPL) et 83H(DPH) dans le SFR .
Exemple: MOVX @DPTR,A Charge la mémoire dont l'adresse est le contenu du
DPTR dans l'accumulateur .Le X du mnémonique indique qu'il s'agit d'une mémoire
extérieure.