Modes D'adressage
Modes D'adressage
Modes D'adressage
I.
Adressage immdiat
Il ne s'agit pas d'un adressage proprement parler, dans la mesure o la partie adresse de
l'instruction ne contient pas d'adresse de l'oprande mais bel et bien l'oprande lui mme.
Exemple : ADD A,1B : additionne la valeur 1B la valeur contenue dans l'accumulateur. Ceci
est diffrent de l'addition entre la valeur contenue l'adresse 1B et la valeur contenue dans
l'accumulateur.
-1-
II.
On dit qu'un mode d'adressage est implicite quand l'instruction concerne ne contient pas
explicitement l'adresse de l'oprande sur lequel elle travaille. A la place, la zone adresse
(appele aussi zone oprande) dsigne un registre (registre qui est souvent le registre
accumulateur).
Le nombre de registres disponibles sur un microprocesseur tant gnralement relativement
faible, il suffira d'un petit nombre de bits pour le dsigner. Ainsi, de telles instructions pourront
tre codes sur 8 bits ce qui constitue un avantage, une instruction 8 bits tant gnralement
plus rapidement traite qu'une instruction de taille suprieure.
Exemple : LD A,C : transfre le contenu du registre C dans le registre accumulateur. Les
instructions travaillant uniquement sur les registres utilisent l'adressage implicite.
A
C
123
III.
123
L'adressage est dit absolu, quand le code opration est suivi de l'adresse relle physique de
l'oprande sur lequel travaille l'instruction.
Exemple : LD (F800),A : cette instruction va ranger le contenu du registre accumulateur
l'adresse absolue F800.
IV.
Adressage indirect
Un adressage est dit indirect s'il permet d'accder, non pas l'information recherche, mais
un mot mmoire dans lequel on trouvera l'adresse effective de l'information. Ce type
d'adressage est assez utile dans la mesure o le code gnr tient en rgle gnrale sur un seul
octet.
Exemple : ADD A,(HL) : cette instruction va ajouter au contenu de l'accumulateur la donne
de trouvant l'adresse cite dans le registre HL. Ainsi, si le registre HL contient la valeur F800,
on ajoutera A la donne contenue l'adresse F800.
Schma sur la diffrence entre l'adressage direct et indirect.
LOAD R1,direct 1000
LOAD R1,indirect 1000 (1000 qui contient 1500)
-2-
V.
Adressage relatif
VI.
Adressage index
Dans la technique de l'adressage index, la valeur spcifie dans la zone adresse de l'instruction
est encore un dplacement mais cette fois ci non pas par rapport au compteur ordinal, mais par
rapport au contenu d'un registre spcialis : le registre d'index.
Exemple : ADD A,(IX+4) : cette instruction va ajouter au contenu de l'accumulateur la donne
se trouvant l'adresse fournie par le registre IX, augment d'un dplacement de 4 octets. Ainsi
si le registre IX contient la valeur F800, on prendra la donne se trouvant l'adresse F800+4
soit F804.
Considrons un bloc de n mots situs aux adresses A, ..., An et que l'on veut le dplacer aux
adresses B, ..., Bn.
Utilisons l'instruction MOVE A, B qu'il faudrait incrmenter de 1 n. => lourdeur.
C'est pourquoi, on peut utiliser ce mode d'adressage avec MOVE A, IX+k avec IX qui contient
l'adresse B et k que l'on peut incrmenter de 1 n.
VII.
Adressage symbolique
-3-
constructeur. Ils sont associs lors de la phase d'assemblage (passage d'un code mnmonique
en un code machine excutable) des adresses absolues de la mmoire.
Exemple : JP NC,ETIQ1 : ETIQ1 est un nom symbolique se situant un endroit prcis du
programme auquel a t associe une adresse absolue. Le branchement (ici conditionn par un
no carry) s'effectuera donc l'adresse absolue associe cette tiquette.
Exercice n1
Soit le programme suivant :
@ D532 : LD A, F800
@ 753 : ADD A, F810
@ C22 : LD F820, A
1- Quel mode d'adressage utilise-t-il ?
2- Rcrire ce programme en utilisant l'adressage relatif.
3- Rcrire ce programme en utilisant l'adressage index : le registre IX contient la valeur B31.
1On ne peut pas rpondre tant donn que F800, F810 et F820 peuvent tre soit des
valeurs de donnes (adressage immdiat) soit des adresses directes (adressage direct),
indirectes (adressage indirect) ou des dplacements par rapport l'adresse de rfrence
contenue dans le compteur ordinal (adressage relatif). De plus, ces diffrents types d'adressage
peuvent tre mlangs au sein du mme programme.
2-
(@ D532) : LD A, 22CE
(@ 753) : ADD A, F0BD
(@ C22) : LD EBFE, A
3-
(@ D532) : LD A, ECCF
(@ 753) : ADD A,ECDF
(@ C22) : LD ECEF, A
Exercice n2
Que fait le programme suivant sachant qu'il utilise le mode d'adressage relatif ?
LD A, 7F
(@ 10) => LD A, 8F
ADD A, 8C (@ 11) => ADD A, 9D
SUB A, 65
(@
12) => SUB
A, 77
Mmoire
centrale
LD 7E, A
(@ 13) => LD 91, A
100
E4
E4
300
300
B4F
400
F212
A
7BB
22
Exercice n3
Soit la mmoire centrale et les registres reprsents comme suit :
200
780
-4-
IX
C
A = 200
A = 200 + 300 = 500
A = 100
A = 100 + 400 = 500
A = 200
A = 200 + E4 = 2E4
A = 22
A = 22 + C = 2E
-5-