Vous êtes sur la page 1sur 2

USTHB/ GTR401/L2/S4 Bentoumi

TP1: Initiation à la programmation sur EMU8086


BUT DU TP :
Familiarisation avec l’EMU8086 et manipulation des différents registres du 8086

EXERCICE1:
1- Lancez l'environnement Emu8086 et appuyer NEW pour ouvrir un nouveau fichier « COM template »
a)Saisissez les instructions suivantes et sauvegardez le sous Tp1Exo1.asm

MOV DH, 0F3


MOV DH, 0FF3h
MOV DH, F3h
MOV BX, 9A0100
MOV CS, 1200
MOV SI, CL
MOV AX, DL
MOV DX, [AX]

b) Dans la fenêtre emu8086\Mysource\ Appuyer sur “Emulate et corriger au fur et à mesure les erreurs qui
ont ete glissées dasn chaque instruction

2- Une fois toutes erreurs corrigées, familiarisez vous avec les Deux nouvelles fenêtres qui viennent de s’ouvrir ; il
s’agit du mode exécution de l’émulateur :
Fenêtre Emulateur Fénêtre Code Source

Zone registre Zone Mémoire Zone code désassemblé

- La fenêtre « original source code » contient le code tel que vous l’avez écrit. La ligne surlignée en jaune est
la prochaine instruction qui va être exécutée. il est possible d’interagir avec ce code en cliquant dessus.
- La fenêtre « emulator : » contient3 zones : la zone des registres , la zone mémoire octet par octet. Sur une
ligne, on retrouve l’adresse mémoire sur 20 bits, la valeur de l’octet en hexadécimale, en décimale et sa représentation
en ASCII,La zone du code désassemblé, qui n’ a plus aucune étiquette ni nom de variable. Il s’agit du code
réellement exécuté

3- Appuyer alors sur « Single step » pour executer les codes pas a pas . Noter dans la zone registres
la valeur de CS et IP à chaque pas ainsi que le contenu des différents registres. Retrouver les valeurs de CS et IP dans
la zone mémoire

4- Appuyer sur Reload pour recharger le programme et en exécutant le programme pas à pas à nouveau , donner le
nombre d’octets de chacune des instructions a partir de la zone mèmoire
USTHB/ GTR401/L2/S4 Bentoumi
EXERCICE2

Ouvrir un nouveau fichier de type « COM template » et saisir le code suivant :


ORG 100h
MOV AL,80h
MOV BL, 81h
ADD AL,BL

a) Enregistrer ce programme sous tp1exo2.asm, puis émuler


b) Exécuter le programme pas à pas et vérifier le contenu des registre et zone mémoire a cahque pas
c) Appuyer sur Flags pour voir les bits d’état à chaque pas
d) Interpréter les flags dans le cas de nombre signés et non signés
e) Refaire de même (ad ) avec le programme suivant :

ORG 100h
MOV AL,F0h
MOV BL, 81h
SUB AL,BL
EXERCICE3
Saisir le code suivant dans un nouveau fichier Tp1exo3.asm

MOV [110h],80h
MOV SI,110h
ADD [SI], 7Fh
MOV AL, [SI]

a) Exécuter ce programme pas à pas et à chaque pas vérifier le contenu des registres, le nombre
d’octets des instructions , et le contenu des cases mémoire concernées ,puis lesflags
Pour voir le contenu de la mémoire [110h], appuyer sur AUX puis memory
Donner la valeur de AX a la f in du programme et expliquer cette valeur
b) Modifier la dernière instruction par MOV AX ,[SI] et donner le contenu de AX et expliquer
cette valeur
c) Modifier le programme comme suit

MOV word ptr [110h],80h


MOV SI,110h
ADD word ptr [SI], 7Fh
MOV AX, [SI]
d) Exécuter ce programme pas à pas et à chaque pas vérifier le contenu des registres, le nombre
d’octets des instructions , et le contenu des cases mémoire concernées , puis les flags

e) Refaire plusieurs exemples avec des valeurs différentes afin de vous familiariser avec l’emulateur
et les différents registres

EXERCICE4
Ecrire un programme qui fait la somme des deux nombres de l’exercice2 mais cette fois ci les nombres
seront déclares en tant que variables var1 var2
a) Donner le nombre d’ octets de chacune des instructions
b) Dans la « zone du code dèsassemble »à quoi correspont les adresses entre crochets qui suivent
les instructions : MOVAL , MOVBL
c) Quelles valeurs contiennent ces adresses . Que représente donc l’identifiant var1 et var2
d) Executer le programme pas a pas et donner à chaque pas les modifications des registres
e) Aller à « View Variable »pour voir les différentes variables utilisées . Modifier le contenu des
var1et var2 en appuyant sur Edit , et vérifier dans les adresses adéquates que la modification a bien
eu lieu