Vous êtes sur la page 1sur 3

Modes d’adressage Différents Modes d’adressage

Format Instruction • Adressage par registre (implicite)


– l’opération se fait sur 1 ou 2 registres
Exemple : INC AX
• L’opération est réalisé entre deux opérandes et le résultat st Mov AX,BX
récupéré par l’opérande destination
• Adressage immédiat
• Il y’a des opérations qui agissent sur un seul opérande
– L’opérande est une constante qui fait partie de l’instruction
• Les opérandes peuvent être des registres , des constantes
ou le contenu de case mémoire Exemple : ADD AX, 12 ;
Mov AX,234
JMP 0008
• Adressage = manière de localisation des opérandes Mov Al, ‘A’
• Mode d’adressage = méthode d’interpréter les bits d’un
champs d’adresse en vue de la localisation de l’opérande

Janvier 2021 Janvier 2021


fatma abbes 71 fatma abbes 72

Différents Modes d’adressage Différents Modes d’adressage


• Adressage indirect
• Adressage direct – Un des deux opérandes se trouve en mémoire, l’adresse se trouve
– Un des deux opérandes se trouve en mémoire, l’adresse de la dans l’un des registres suivants BX,BP,DI,SI
case mémoire est précisée directement dans l’instruction – Adressage Indirect est divisé en trois catégories selon le registre
d’offset utilisé : basé , indexé, basé indexé
– Exemple : MOV AX,[120h]
MOV [243],BX

– Si le registre de segment n’est pas spécifié, le segment par défaut sera


utilisé:

Janvier 2021 Janvier 2021


fatma abbes 73 fatma abbes 74
Différents Modes d’adressage Différents Modes d’adressage
• Adressage indirect • Adressage indirect basé
Exemple
MOV BX, offset var;
Exemple
MOV AX,[BX] ;
MOV BX, offset VAR
MOV AX, [BX+2]
ADD AX, [BP+2];

Janvier 2021 Janvier 2021


fatma abbes 75 fatma abbes 76

Différents Modes d’adressage Différents Modes d’adressage


• Adressage indirect indexé
– L’offset se trouve dans l’un des deux registres SI ou DI

– Exemple
MOV SI,6
MOV AX, tab[SI]

Janvier 2021 Janvier 2021


fatma abbes 77 fatma abbes 78
Différents Modes d’adressage Différents Modes d’adressage
compatibilité opérandes adresse mémoire compatibilité opérandes adresse mémoire
• NON ambigue car la taille du registre détermine la • pointeur vers un mot WORD
taille de la destination – opérandes sur 16 bits
MOV [0BCh], AX • Pointeur vers un octet BYTE
MOV [BX], AL – opérandes sur 8 bits
• Ambigue
MOV [0BCh], 1
MOV [BX], 0
La valeur immédite est elle sur 1 ou deux octets ??
Comment l’assembleur peut il decider ?

Janvier 2021 Janvier 2021


fatma abbes 79 fatma abbes 80

Modes d’adressage
Manipulation de tableaux
Exemples
Exemples 1. Somme des éléments pairs d’un tableau
MOV AH, byte ptr [0200] Ecrire un programme .com qui fait la somme des éléments d’1 tableau V1 de 5
MOV CX, [TOTO + DI] éléments dans V2. Modifier le programme précédent pour qu’il ne fasse que la
somme des nombres pairs.
MOV BX, word ptr ds:[1045h] MOV AL, ds:[1 + SI]
2. Somme des éléments de deux tableaux dans un troisième tableau
MOV dword ptr ds:[BP], 15 MOV ds:[BP + SI], AH Ecrire un programme en assembleur qui permet de faire la somme de deux tableaux
(éléments par éléments) notés seg1 et seg2 et de sauvegarder le résultat dans un
MOV AX, word ptr [TOTO + BX + DI + 1] troisième tableau.
MOV dword ptr es:[DI], 142
3. Minimum/Maximum d’un tableau
Ecrire un programme assembleur (.COM) qui recherche le minimum d’un tableau
MOV byte ptr ds:[BP + 1], 12
donné TAB.
4. Tri croissant d’un tableau
MOV ds:[BX + (TOTO – BOBO)/10], AX
Ecrire un programme en assembleur qui permet de trier un tableau selon
l’algorithme du tri croissant.
Janvier 2021 Janvier 2021
fatma abbes 81 fatma abbes 82

Vous aimerez peut-être aussi