Nothing Special   »   [go: up one dir, main page]

1-Modes D'adressage: S ° J ' P I 8086

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 4

UNIVERSITÉ ABDERRAHMANE MIRA DE BEJAIA

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.

Que devient la séquence d’instructions précédente si on considère N1, N2, N3 des


nombres de 16bits

Exercice 3 : Adressage indirect indexé


Soit un tableau T de 4 valeurs à 8bits rangé en mémoire à partir de l’offset 100h. En
utilisant l’adressage indexé, écrivez une séquence d’instructions pour permuter les
valeurs des cellules T[0] et T[3], T[1] et T[2].

Réécrivez la séquence d’instructions précédente pour un tableau composé de 4 valeurs


de 16bits chacune.

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 1 : Adresses des données empilées/dépilées


Donner l’adresse physique de:
- la case mémoire cible manipulée par l’instruction : PUSH AX;
- la case mémoire source manipulée par l’instruction : POP DX;
- la case mémoire source manipulée par l’instruction : PUSH [SI];
- la case mémoire cible manipulée par l’instruction : PUSH [SI];

Exercice 2 : Comprendre l’empilement et le dépilement


Donner l’état de la pile après l’exécution des séquences d’instructions suivantes (La pile
est initialement vide):

(1) (2) (3)


PUSH AX PUSH AX PUSH AX
PUSH BX PUSH CX PUSH BX
PUSH AX PUSH BX POP AX
PUSH BX POP DX POP BX

Exercice 3 : Empilement et dépilement de données


Donner le contenu des registres après l’exécution des séquences d’instructions
suivantes:

(1) (2) (3)


MOV AX, 1234h MOV AX, 1234h MOV AX, 1234h
PUSH AX MOV BX, 5678h MOV BX, 5678h
POP DX PUSH BX PUSH BX
PUSH AX PUSH AX
POP CX MOV BP,SP
POP DX MOV AX,[BP+2]
MOV BX,[BP]
POP CX
POP DX

Exercice supplémentaire
Remplacer les séquences d’instructions suivantes par une seule instruction ayant le
même effet sur les registres:

(1) (2) (3)


PUSH AX PUSH AX PUSH BX
POP BX PUSH BX POP AX
POP AX
POP BX

4
TD N°2 : Jeu d’instruction du µP 8086

3- Les instructions arithmétiques & logiques


Exercice 1
Déterminer le contenu (en hexadécimal) des registres AX, BX et les valeurs des flags après
l’exécution de chacune des instructions de la séquence suivante (initialement BX=15,
AX=16, CF=OF=AF=1 et SF=ZF=0):
AX BX CF OF SF ZF AF
MOV BL,255
XOR BL,1
TEST BL,AL
NEG BL
CMP BL,-8
ADD AL,BL
DEC BL
CBW
DIV AL
IMUL BL

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) :

SHL AL,1 PUSH AX MOV CX,2 NOT AX PUSH AX


RCL AH,1 AND AX,BX MUL CX INC AX SUB AX,BX
POP AX POP AX

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

4- Les instructions de saut conditionnel et inconditionnel


Exercice 1
Exprimer les algorithmes suivants en assembleur (les variables sont de type 16bits):
(1) (2) (3)
pour i allant de 0 à n pour i allant de n à 0 pour i allant de n1 à n2
faire faire faire
S ← S+1 S=S+1 S=S+1
fin_pour fin_pour fin_pour
X←S X←S X←S
(4) (5) (6)
Tanq que y > 0 faire Tanq que y ≤ 10 faire Tanq que 0<y ≤ 10 faire
y=y+x y=y+x y=y+x
fin_Tanq que fin_Tanq que fin_Tanq que
y← y+1 y← y+1 y← y+1
(7) (8) (9)
si x =0 si x =0 Tanq que y ≤ 10 faire
x=1 x=1 si x = 0
fin_si sinon x=1
y← y+x x=-1 fin_si
fin_si y=x-1
y← y+x Fin_Tanq que
y← y+x

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

Vous aimerez peut-être aussi