Documente Academic
Documente Profesional
Documente Cultură
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
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
- 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
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
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