Vous êtes sur la page 1sur 8

Université : Kasdi Merbah Ouargla Année Universitaire : 2017 / 2018

Faculté : F.N.T.I.C Spécialité : 3eme Licence Automatique


Département : Electronique et télécommunications Module : Microprocesseurs et microcontrôleurs

TP2 : Premiers pas en Assembleur 8086 … I-2 / Soit le programme suivant :

Nom / Prénom : 1) Groupe :


2)

Objectifs :
 Se familiariser avec le logiciel Emu8086.
 Débuter avec le langage Assembleur.

Matériel utilisé :
 Un PC.

I – Préparation théorique :
I-1 / Quelle est la valeur de chacune des données suivantes ?

TP =
TP DW 8086

TP =
TP DB 5 dup (“Assembleur 8086”)

Nombre =
Nombre DD ?

Matrice =
Matrice DW 12, 54, 30

Chaine =
Chaine DB ‘Ceci est un message’
a- Quelles sont les différentes parties de ce programme ?
Cinq =
Cinq EQU 5*6 - …………………………………….
- …………………………………….
Six = - …………………………………….
Six EQU Cinq*2 – Cinq
- …………………………………….
Douze =
Douze EQU Cinq + Six
b- Quelle est le rôle de la première partie ?
Matrice = …………………………..………………………..……………………………………..….
Matrice DW 7 DUP ( ?)
…………………………………………………………………………………..……….…
Matrice =
Matrice DB 5 DUP (0, 1) …………………………………………………………………………………………..….

Site : www.sites.google.com/site/universite2ouargla Groupe Facebook : Nasri Instrumentation Ouargla


Elearn : TP Microprocesseur et Microcontrôleurs – N.NASRI Youtube : nadjib nasri matlablog
Chargé du TP : N.Nasri …
Université : Kasdi Merbah Ouargla Année Universitaire : 2017 / 2018
Faculté : F.N.T.I.C Spécialité : 3eme Licence Automatique
Département : Electronique et télécommunications Module : Microprocesseurs et microcontrôleurs

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


- Assume - dl mov ax,bx : charge le contenu du registre bx dans le registre ax. Dans ce cas, le transfert
- Mov - jne se fait du registre bx (source) vers un autre registre ax (destination).
- Debut - inc
- encore : - dw Exemple 2 :
- Ends - ax mov bl, [1200H] : cette instruction réalise le transfert du contenu de la case mémoire
- dup - cmp
(source) d’adresse effective (offset) 1200H vers le registre bl (destination). L’instruction
Directives Mnémoniques Autre comporte l’adresse de la case mémoire ou se trouve la donnée.

Exemple 3 :
mov [1200H], al : cette instruction réalise le transfert du contenu du registre al (source)
vers la case mémoire (destination) d’adresse effective (offset) 1200H. L’instruction
comporte l’adresse de la case mémoire ou la donnée va être transférer.

Exemple 4 :
mov al, 12H : charge le registre al (destination) avec la valeur immédiate (source) 12H.
La donnée est fournie immédiatement avec l’instruction.

II/ Premiers pas en programmation : Exemple 5 :


Parmi les opérations de base qu’on réalise en programmation Assembleur 8086, le mov [1200H], 12H : cette instruction réalise le transfert de la valeur immédiate (source)
transfert de données. Ceci se fait grâce aux instructions : MOV. 12H vers la case mémoire (destination) d’adresse effective (offset) 1200H. L’instruction
comporte l’adresse de la case mémoire ou la donnée va être transférer.
II – 1 / L’instruction MOV :
L’instruction MOV (En anglais : move est la traduction de mot français déplacer). II – 2 / Débuter avec Emu8086 :
En assembleur, Cette instruction réalise un transfert d’une source vers une destination : 1 – Ouvrir l’émulateur emu8086.

MOV destination, source


Les transferts possibles :

Destination Source
Registre Registre
Registre Mémoire
Mémoire Registre
Registre Valeur immédiate
Mémoire Valeur immédiate

Site : www.sites.google.com/site/universite2ouargla Groupe Facebook : Nasri Instrumentation Ouargla


Elearn : TP Microprocesseur et Microcontrôleurs – N.NASRI Youtube : nadjib nasri matlablog
Chargé du TP : N.Nasri …
Université : Kasdi Merbah Ouargla Année Universitaire : 2017 / 2018
Faculté : F.N.T.I.C Spécialité : 3eme Licence Automatique
Département : Electronique et télécommunications Module : Microprocesseurs et microcontrôleurs

2 – Choisir un nouveau document en cliquant sur New dans le menu affiché. 6 - Deux fenêtres s’afficheront. Une fenêtre (Original souce 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.

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

MOV AL, 10H 7 - exécuter le code ainsi écrit en cliquant sur run.
MOV AH, 09H 8 – Que remarquez-vous sur le contenu des différents registres ?
………………………………………………………………………………………………….
5 - Emuler le code en cliquant sur emulate se trouvant sur la barre de taches ………………………………………………………………………………………………….
principale. ………………………………………………………………………………………………….
………………………………………………………………………………………………….
………………………………………………………………………………………………….
………………………………………………………………………………………………….
………………………………………………………………………………………………….
………………………………………………………………………………………………….

9 - Maintenant, sur la fenêtre emulator, cliquer sur reload afin de recharger le


code (c.à.d : Le mettre à nouveau en mémoire pour le ré-exécuter). Puis cliquer
plusieurs fois sur single step et remarquer à chaque fois les changements dans les
registres.

Site : www.sites.google.com/site/universite2ouargla Groupe Facebook : Nasri Instrumentation Ouargla


Elearn : TP Microprocesseur et Microcontrôleurs – N.NASRI Youtube : nadjib nasri matlablog
Chargé du TP : N.Nasri …
Université : Kasdi Merbah Ouargla Année Universitaire : 2017 / 2018
Faculté : F.N.T.I.C Spécialité : 3eme Licence Automatique
Département : Electronique et télécommunications Module : Microprocesseurs et microcontrôleurs

10 - Donner les résultats dans le tableau suivant. II – 3 / Manipulation des registres et de la mémoire :
1 – Saisir, alors, le code assembleur suivant :

mov ax, 05h


mov [100], ax

2 - Emuler le code en cliquant sur emulate se trouvant sur la barre de taches principale.
3 - exécuter le code ainsi écrit en cliquant sur run.
4– Que remarquez-vous sur le contenu des différents registres ?
………………………………………………………………………………………………….………
………………………………………………………………………………………….………………
………………………………………………………………………………….………………………
………………………………………………………………………….………………………………
………………………………………………………………….………………………………………
………………………………………………………….………………………………………………
………………………………………………….………………………………………………………
………………………………………………………………………………………....……………….
………………………………………………………………………………………....……………….
………………………………………………………………………………………....……………….
*-

-
5– Que remarquez-vous sur la mémoire ?
10 – quel est le rôle de single step ? ………………………………………………………………………………………………….………
…………………………………………………………………………………………………. ………………………………………………………………………………………….………………
…………………………………………………………………………………………………. ………………………………………………………………………………….………………………
…………………………………………………………………………………………………. ………………………………………………………………………….………………………………
…………………………………………………………………………………………………. ………………………………………………………………….………………………………………
…………………………………………………………………………………………………. ………………………………………………………….………………………………………………
…………………………………………………………………………………………………. ………………………………………………….………………………………………………………
………………………………………………………………………………………....……………….
11 – Enregistrer ce code sous le nom : monprog1.asm. ………………………………………………………………………………………....……………….
………………………………………………………………………………………....……………….
………………………………………………………………………………………....……………….

Site : www.sites.google.com/site/universite2ouargla Groupe Facebook : Nasri Instrumentation Ouargla


Elearn : TP Microprocesseur et Microcontrôleurs – N.NASRI Youtube : nadjib nasri matlablog
Chargé du TP : N.Nasri …
Université : Kasdi Merbah Ouargla Année Universitaire : 2017 / 2018
Faculté : F.N.T.I.C Spécialité : 3eme Licence Automatique
Département : Electronique et télécommunications Module : Microprocesseurs et microcontrôleurs

Indication:
Après exécution, on aura la fenêtre suivante (fenêtre de l’émulateur), plusieurs 6– Taper maintenant 100 dans la zone indiquant l’adresse mémoire et appuyer sur
informations sont présentes : sur les registres, la mémoire, sur le programme … entrée du clavier.

Registres mémoire Programme

7– Observer maintenant la case correspondant à 01001 et compléter le tableau .

Valeur Signification

01100

05

005
Adresse physique Hexadécimal Décimal Code ASCII

- Remarquer qu’il existe plusieurs lignes de codes qui se termine par HLT, et
l’adresse correspondante est 0101A. Ceci est simplement dû au fait que le
programme lui-même est stocké en mémoire.
(pour la dernière .. consulter l’annexe 1 : Code ASCII)

Site : www.sites.google.com/site/universite2ouargla Groupe Facebook : Nasri Instrumentation Ouargla


Elearn : TP Microprocesseur et Microcontrôleurs – N.NASRI Youtube : nadjib nasri matlablog
Chargé du TP : N.Nasri …
Université : Kasdi Merbah Ouargla Année Universitaire : 2017 / 2018
Faculté : F.N.T.I.C Spécialité : 3eme Licence Automatique
Département : Electronique et télécommunications Module : Microprocesseurs et microcontrôleurs

8 – Saisir, alors, le code assembleur suivant :


Valeur 1er cas 2eme cas
mov ah, 05h
mov [100], ah
Adresse physique

9 - Emuler le code en cliquant sur emulate se trouvant sur la barre de taches principale. Valeur en Hexadécimal
10 - exécuter le code ainsi écrit en cliquant sur run.
11- quelle est la différence entre l’utilisation de ax et ah ? Valeur en Décimal
………………………………………………………………………………………………….………
………………………………………………………………………………………….………………
Valeur en Code ASCII
………………………………………………………………………………….………………………
………………………………………………………………………….………………………………
………………………………………………………………….………………………………………
………………………………………………………….……………………………………………… 20 – Commentaire :
………………………………………………….……………………………………………………… ………………………………………………………………………………………………….………
………………………………………………………………………………………....………………. ………………………………………………………………………………………….………………
………………………………………………………………………………….………………………
12- Saisir, alors, le code assembleur suivant : ………………………………………………………………………….………………………………
………………………………………………………………….………………………………………
mov ax, 55h ………………………………………………………….………………………………………………
mov [100], ax ………………………………………………….………………………………………………………
………………………………………………………………………………………....……………….
13 - Emuler le code en cliquant sur emulate se trouvant sur la barre de taches principale. ………………………………………………………………………………………………….………
14 - exécuter le code ainsi écrit en cliquant sur run. ………………………………………………………………………………………….………………
15 – Compléter le tableau ci-après. ………………………………………………………………………………….………………………
………………………………………………………………………….………………………………
16- Saisir, alors, le code assembleur suivant : ………………………………………………………………….………………………………………

mov ax, 55
21- Saisir, alors, le code assembleur suivant et refaite le même travail.
mov [100], ax
mov al, 55h
17 - Emuler le code en cliquant sur emulate se trouvant sur la barre de taches principale. mov ah, 36
18 - exécuter le code ainsi écrit en cliquant sur run. mov [100h], al
19 – Compléter le tableau ci-après. mov [104h], ah

Site : www.sites.google.com/site/universite2ouargla Groupe Facebook : Nasri Instrumentation Ouargla


Elearn : TP Microprocesseur et Microcontrôleurs – N.NASRI Youtube : nadjib nasri matlablog
Chargé du TP : N.Nasri …
Université : Kasdi Merbah Ouargla Année Universitaire : 2017 / 2018
Faculté : F.N.T.I.C Spécialité : 3eme Licence Automatique
Département : Electronique et télécommunications Module : Microprocesseurs et microcontrôleurs

22- Expliquer le résultat obtenu en complétant le tableau suivant : 24- Saisir, alors, le code assembleur suivant et refaite le même travail.

mov ax, 55h


mov [100h], ax
mov bx, 100h
mov cx, [bx]

25- Expliquer le résultat obtenu en complétant les deux tableaux suivants :


Valeur
Registres modifiées Cases mémoires modifiées
Adresse physique
………………….. …………………..
Valeur en Hexadécimal …………………. ………………….
………………….. …………………..
Valeur en Décimal ………………….. …………………..
………………… …………………
Valeur en Code ASCII

instruction Description

23 – Commentaire :
………………………………………………………………………………………………….………
………………………………………………………………………………………….………………
………………………………………………………………………………….………………………
………………………………………………………………………….………………………………
………………………………………………………………….………………………………………
………………………………………………………….………………………………………………
………………………………………………….………………………………………………………
………………………………………………………………………………………....……………….
………………………………………………………………………………………………….………
………………………………………………………………………………………….………………
………………………………………………………………………………….………………………

Site : www.sites.google.com/site/universite2ouargla Groupe Facebook : Nasri Instrumentation Ouargla


Elearn : TP Microprocesseur et Microcontrôleurs – N.NASRI Youtube : nadjib nasri matlablog
Chargé du TP : N.Nasri …
Université : Kasdi Merbah Ouargla Année Universitaire : 2017 / 2018
Faculté : F.N.T.I.C Spécialité : 3eme Licence Automatique
Département : Electronique et télécommunications Module : Microprocesseurs et microcontrôleurs

26- Saisir, alors, le code assembleur suivant et refaite le même travail. 29 – Décrire ce que fait chaque instruction.

mov [100h], 36h instruction Description


mov [104h], 52h
mov [106h], 69h

mov bx, 100h

mov cx, [bx]


mov dx, [bx+4]
mov ax, [bx]+6

27- Afficher les cases mémoires modifiées et compléter le tableau suivant :

Registres modifiées Cases mémoires modifiées

………………….. …………………..
…………………. ………………….
………………….. …………………..
………………….. …………………..
………………… …………………

28 – Commentaire : 30 –Conclusion :
………………………………………………………………………………………………….……… ………………………………………………………………………………………………….………
………………………………………………………………………………………….……………… ………………………………………………………………………………………….………………
………………………………………………………………………………….……………………… ………………………………………………………………………………….………………………
………………………………………………………………………….……………………………… ………………………………………………………………………….………………………………
………………………………………………………………….……………………………………… ………………………………………………………………….………………………………………
………………………………………………………….……………………………………………… ………………………………………………………….………………………………………………
………………………………………………….……………………………………………………… ………………………………………………….………………………………………………………
………………………………………………………………………………………....………………. ………………………………………………………………………………………....……………….
………………………………………………………………………………….………………………

Site : www.sites.google.com/site/universite2ouargla Groupe Facebook : Nasri Instrumentation Ouargla


Elearn : TP Microprocesseur et Microcontrôleurs – N.NASRI Youtube : nadjib nasri matlablog
Chargé du TP : N.Nasri …