Vous êtes sur la page 1sur 9

USTHB/FEI

Microprocesseurs et Microcontrôleur TP N1 Tp : µp et µcontrôleur


L3/Auto
TP N°1 2021/2022

Prise en main de simulateur « Emu8086 »


Nom et prénom :
SG :

Objectifs :
L’objectif de ce TP est de:
 se familiariser le simulateur 8086 simulator.
 Débuter avec le langage Assembleur.
.
I. Simulateur « Emu8086 » :

Ce logiciel est très utile pour ceux qui commencent à apprendre le langage Assembleur. Il compile
le code source et l’exécute pas à pas dans un émulateur. Un émulateur est un logiciel permettant
d’exécuter un programme sur une plate-forme.
Il est plus facile de manipuler des interférences graphiques sur PC que de travailler sur du
matériel.
En cliquant deux fois sur l’icône de l’émulateur, l’éditeur du programme assembleur ainsi que
d’autres fenêtres s’ouvrent à savoir : registres A, B, C, D, E, H, L, compteur de programme (CP),
pointeur de pile (SP), flags(F), mémoire, Interfaces d’entrée-sortie, convertisseur binaires-
décimal,…….

II. Programmation :

II-1. Débuter avec Emu8086


Emu8086 se présente dans un premier temps comme un éditeur de texte classique, avec le
support d’une colorisation syntaxique du code assembleur (mode éditeur).
Certaines options du menu « view » peuvent être pratiques. Voyons les principales options
disponibles (certaines sont accessible directement par des boutons situés sous la zone 3) :
Stack : affiche la pile.
Variable : affiche la liste des variables et leurs valeurs.
Memory : affiche une partie de la mémoire. La visualisation en mode table permet plus
facilement de se repérer.
Flag : affiche la valeur des différents drapeaux.
Ascii code : affiche une table ascii au cas où vous auriez oublié la votre.
1- Ouvrir l’émulateur emu8086

Page 1/9 TP N°1


Microprocesseurs et Microcontrôleur TP N1

2- Choisir un nouveau document en cliquant sur New dans le menu affiché.

3- Ensuite, cliquer sur empty workspace dans la liste affichée afin d’avoir un document
vide.
4- Saisir, alors, le code assembleur suivant :

ORG 100h
MOV AX, 0B800h
MOV DS, AX
MOV [02h],’B’
MOV [04h],’O’
MOV [06h],’N’
MOV [08h],’J’
MOV [0Ah],’O’
MOV [0Ch],’U’
MOV [0Eh],’R’
MOV [10h],’,’
MOV [12h],’M’
MOV [14h],’O’
MOV [16h],’N’
MOV [18h],’D’
MOV [1Ah],’E’
MOV [1Ch],’!’
MOV [1Eh],’!’
MOV [20h],’!’
RET

Page 2/9 TP N°1


Microprocesseurs et Microcontrôleur TP N1

- Quel est la signification de : « ORG 100h »

- ----------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------

5- Emuler le code en cliquant sur emulate se trouvant sur la barre de taches principale.

6- Deux fenêtres s’afficheront. Une fenêtre (Original sous code) contient le code qu’on vient
d’écrire. Une seconde fenêtre (emulator) qui nous permettra d’exécuter le code, de voir les
contenus des différents registres et beaucoup d’autres choses qu’on verra en fur et à
mesure.

Page 3/9 TP N°1


Microprocesseurs et Microcontrôleur TP N1

7- Exécuter le code ainsi écrit en cliquant sur run.


8- Enregistrer ce code sous le nom : Tp1exo1.asm.
9- Afficher le message en cliquant sur screen.

--------------------------------------------------------------------------------------------------------------------

II-2 Manipulation des registres et des mémoires

1- Ouvrir un nouveau fichier de type « empty workspace » et saisir le code suivant :


- Saisissez les instructions suivantes et sauvegardez-le sous TP1Exo2.asm.

Programme : Correction :

ORG 100 -----------------------------------------------------------------------------


MOV AX, B800h
-----------------------------------------------------------------------------
MOV DS, [AX]
----------------------------------------------------------------------------
MOV CL, '’A'’
MOV CH, 1101_1111bh -----------------------------------------------------------------------------
MOV BX? 15Eh
-----------------------------------------------------------------------------
MOV [BX], (CX)
-----------------------------------------------------------------------------
RET
---------------------------------------------------------------------------

---------------------------------------------------------------------------

2- Saisir le code assembleur suivant :


MOV Ax, 03h
MOV [100h], AX
HLT

a- Emuler le code en cliquant sur emulate se trouvant sur la barre de taches principale.
b- Exécuter le code ainsi écrit en cliquant sur run.
Après exécution, on aura la fenêtre de l’émulateur, plusieurs informations sont présentes :
sur les registres, la mémoire, sur le programme………

Page 4/9 TP N°1


Microprocesseurs et Microcontrôleur TP N1

Remarquer qu’il existe plusieurs lignes de code qui se termine par HLT, et l’adresse
correspondante est 0101A. Ceci est simplement du au fait que le programme lui-même est
stocké en mémoire.
c- Que remarquez-vous sur le contenu des différents registres ?

----------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------

d- Que remarquez-vous sur la mémoire ?

----------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------
Page 5/9 TP N°1
Microprocesseurs et Microcontrôleur TP N1

----------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------

e- Tapez maintenant 100 dans la zone indiquant l’adresse mémoire et appuyez sur entrée du
clavier.

- Observez maintenant la case correspondant à 0100 :100 et compléter le tableau.

Valeur signification

01100

03

003

3- Refaire de même ab avec le code suivant :


MOV AH, 03h
MOV [100h], AH
HLT
Page 6/9 TP N°1
Microprocesseurs et Microcontrôleur TP N1

- Quelle est la différence entre l’utilisation de AX et AH ?

----------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------

4- Exécuter les deux codes suivants :

Code 1:
MOV AX, 33h
MOV [100h], AX
HLT

Code 2:
MOV AX, 33h
MOV [100h], AX
HLT
-compléter le tableau ci-dessous:
Valeur Code1 Code2
Adresse physique
Valeur en Hexadécimal
Valeur en Décimal
Valeur en code ASCII

- Commentaires :

--------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------

Page 7/9 TP N°1


Microprocesseurs et Microcontrôleur TP N1

II- 3- soit le programme suivant :

MOV AL, 10H


MOV AH, 08H
MOV AH, AL
MOV BL, AL
MOV CX, BX
MOV AH, [0100H]
MOV BX, [104H]
MOV [106H], AH
MOV [108H], BX
HLT

1- Exécuter le programme sous emu8086.


2- Ré-exécuter le programme (c-à-d : sur la fenêtre emulator, cliquer sur reload afin de
recharger le code). Puis cliquer plusieurs fois sur single step et remarquer à chaque
fois le changement dans les registres.

3- Quel est le rôle de single step ?

---------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------

III- Homework:

1- Désigner dans la liste suivante les directives et les instructions :

- Assume - dup
- Mov - dl
- Debut - jne
- encore : - inc
- Ends - dw
- cmp - ax

Directives Mnémoniques autres

Page 8/9 TP N°1


Microprocesseurs et Microcontrôleur TP N1

2- Écrire un programme en assembleur qui permet d’afficher les 26 lettres de l’alphabet.


Note : Pour afficher un caractère à l'écran, vous devez utiliser « int 21h » avec le service 2, le
caractère à afficher doit être en dl.

3- Quelle est la valeur de chacune des données suivantes ?

TP DW 8086 TP =
Nombre DD ? Nombre =
Matrice DW 12, 54, 30 Matrice =
Chaine DB ‘Ceci est un message’ Chaine =
mille EQU 1000 mille =

4- Quel est la signification de : « ORG 7C00h »

Page 9/9 TP N°1

Vous aimerez peut-être aussi