1-Modes D'adressage: S ° J ' P I 8086
1-Modes D'adressage: S ° J ' P I 8086
1-Modes D'adressage: S ° J ' P I 8086
FACULTÉ DE TECHNOLOGIE
DÉPARTEMENT D’AUTOMATIQUE, TELECOMMUNICATION ET ELECTRONIQUE
3ème année Licence – UEF3121
2020/2021
SÉRIE DE TD N° 02
JEU D’INSTRUCTION DU µP INTEL8086
1- Modes d’adressage
Exercice 1 : Adresse physique, logique et effective
Supposons que DS = 0721h; CS = 631h; SS = h; ES=0721h; SP= FFFEh; BP=0FFBh; AX
= 1234h; BX = 0103h; CX=7776h; DX= 8887h; SI = 0001h ; DI= 2222h et IP = 00AAh.
Donner l’adresse physique, logique et effective de la case mémoire manipulée
par chacune des instructions suivantes et déterminer la valeur de AL après son
exécution:
0730Ah 11H
• MOV AL, [100h] 0730Bh 22h
• MOV AL, [BP] 0730Ch 33h
• MOV AL, [BX] 0730Dh 44h
• MOV AL, [100h] [SI] 0730Eh 55h
• MOV AL, [100h] [SI+2] 0730Fh 66h
• MOV AL, ES:[100h] 07310h 77h
• MOV AL, [BX][SI] 07311h 88h
07312h 99h
07313h AAh
07314h BBh
Exercice 2 : Adressage direct
Soit N1, N2, N3 trois nombres de 8bits rangés successivement en mémoire à partir de
l’offset 100h. En utilisant le minimum d’instructions MOV et l’adressage direct, mettez la
valeur de N1 à la place de N3, N2 à la place de N1 et N3 à la place de N2.
2- Manipulation de la pile
Pour tous les exercices, on suppose que DS = 0FFFh; CS = 0FFFFh; SS = 3333h;
ES=4444h; SP= FFFE; BP=0000h; AX = 1234h; BX = 5554h; CX=7776h; DX= 8887h;
SI = 1111h ; DI= 2222h et IP = 00AAh.
3
TD N°2 : Jeu d’instruction du µP 8086
Exercice supplémentaire
Remplacer les séquences d’instructions suivantes par une seule instruction ayant le
même effet sur les registres:
4
TD N°2 : Jeu d’instruction du µP 8086
Exercice 2
Ecrire une séquence d’instruction qui permet de calculer la somme de quatre nombres de
types 16bits rangés en mémoire à partir de l’adresse [0100h]. Le résultat sera défini sur
16bits et sauvegardé à l’adresse [0110h].
Modifier la séquence d’instruction précédente pour calculer la somme de 4 nombres
32bits rangés en mémoire à partir de l’adresse [0100h]. Le résultat sera également définie
sur 32bits et sauvegardé à partir de l’adresse [0200h].
Exercice 3
Remplacer les séquences d’instructions suivantes par une instruction unique ayant le
même effet sur les registres et les flags (si c’est possible) :
Exercice supplémentaire
Compléter les séquences d’instructions suivantes en ajoutant les valeurs d’opérandes
dont la somme positionne les flags cités aux valeurs indiquées.
(a) MOV BL,……… (b) MOV AX,……… (c) MOV AH,……… (d) MOV CX,………
ADD BL,……… ADD AX,……… ADD AH,……… ADD CX,………
CF et SF à 1 CF et SF à 0 ZF et CF à 1 ZF et CF à 0
(d) MOV AL,……… (e) MOV DX,……… (f) MOV DH,……… (g) MOV BX,………
ADD AL,……… ADD DX,……… ADD DH,……… ADD BX,………
CF = 1 et OF =0 CF=0 et OF = 1 CF et OF à 1 CF et OF à 0
5
TD N°2 : Jeu d’instruction du µP 8086
Exercice 2
Ecrire une séquence d’instruction en assembleur équivalente à l’algorithme suivant (A,
n, m, k,i et les éléments de T et M sont des entiers non signés de 8bits) :
A← 27; n ← 100 ; k ← 0
pour i allant de 1 à n faire
si T[i]<A alors M[i] ← 0;
sinon M[i] ← 1; k ← k+1;
fin_si
fin_pour
m ← n-k
Exercice supplémentaire
Ecrire une séquence d’instruction en assembleur équivalente à l’algorithme suivant (i, S
et les éléments de T sont des entiers 16bits) :
Tant que (i <= 8)
S← S + T[i];
si (S >= +256 ou S<=-256) alors i ← 9;
sinon i ← i + 1;
fin_si
fin_tantque
S← 2*S