0% ont trouvé ce document utile (0 vote)
474 vues5 pages

TP: Programmation Assembleur 8086

Ce document décrit un TP sur les opérations arithmétiques et logiques avec le microprocesseur 8086. Il présente des exercices sur l'addition, la soustraction et la multiplication de données mémoires en assembleur, ainsi que l'affichage des résultats et des registres.

Transféré par

Cesar Malki
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
474 vues5 pages

TP: Programmation Assembleur 8086

Ce document décrit un TP sur les opérations arithmétiques et logiques avec le microprocesseur 8086. Il présente des exercices sur l'addition, la soustraction et la multiplication de données mémoires en assembleur, ainsi que l'affichage des résultats et des registres.

Transféré par

Cesar Malki
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Sous-Groupe: ...............

UNIVERSITE M’HAMED BOUGARA DE BOUMERDES


FACULTE DE TECHNOLOGIES Noms des étudiants et signatures:
Département : Ingénierie des Systèmes Electriques 1) .....................................................
Master ME et ESE - S1 (2019/2020)
2) .....................................................
Module : TP Microprocesseurs et Microcontrôleurs
Note/10: .....................

TP 2 : Opérations Arithmétiques et Logiques sous le


Microprocesseur 8086
Durée : 3 heures

1. Objectif
L'objectif de cette manipulation est d'apprendre à l'étudiant la programmation des opérations arithmétiques et
logique en langage assembleur selon les instructions du 8086.

2. Instructions arithmétiques et logiques de bas


Comme dans de nombreux processeurs le 8086 possède des instructions arithmétiques et logiques qui traitent
des données entières codées sur un octet ou un mot.
Pour faire des opérations sur des données plus complexes (des nombres flottants par exemple), on devra les
programmer.

3. Travail à faire :
3.1. Addition
 Faire la somme des 2 cases mémoire @250h et @260h (valeurs au choix) et stocker le résultat dans
@270h. Ecrire le programme en langage assembleur 8086.
Programme :
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………

1/5 Dr. [Link]


 Avant l’exécution du programme, afficher le contenu des registres généraux et remplir le tableau
suivant :
Registre IP Ax Bx Cx Dx
Valeur

 Exécuter votre programme et remplir les tableaux suivants :

@250 @260 @270 IP Ax Bx Cx Dx

Registre d’état :

 Commenter le résultat ainsi que les valeurs du registre d’état :


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

 Quitter « Debug » et redémarrer.


 Exécuter le programme précédant pour les valeurs @250 = 29h et @260 = FBh.

@250 @260 @270 IP Ax Bx Cx Dx

Registre d’état :

 Commenter le résultat ainsi que les valeurs du registre d’état :


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

3.2. Soustraction
 Quitter « Debug » et redémarrer.
 Ecrire un programme en langage assembleur du 8086 qui permet de faire la soustraction de la case
mémoire @250h de la case mémoire @260h (valeurs au choix) et stocker le résultat dans @270h
(@270=@260-@250 Avec @260 > @250).
Programme :
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
…………………………………………………………………………………………………………...

2/5 Dr. [Link]


 Exécuter votre programme et remplir les tableaux suivants :

@250 @260 @270 IP Ax Bx Cx Dx

Registre d’état :

 Commenter le résultat ainsi que les valeurs du registre d’état :


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

 Quitter « Debug » et redémarrer.


 Exécuter le programme précédant pour les valeurs @260 = 20h et @250 = F0h.
Programme avec de nouvelles valeurs :

@250 @260 @270 IP Ax Bx Cx Dx

Registre d’état :

 Commenter le résultat ainsi que les valeurs du registre d’état :


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

3.3. Multiplication
 Quitter « Debug » et redémarrer.
 Ecrire un programme en langage assembleur du 8086 qui permet de faire la multiplication des deux
cases mémoire @250h et @260h (valeurs au choix) et stocker le résultat dans @270h
(@270h=@250h x @260h).

Programme :
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………

 Exécuter votre programme et remplir le tableau suivant :

3/5 Dr. [Link]


@250 @260 @270 @271 IP Ax Bx Cx Dx

 Commenter le résultat :
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
…………………………………………………....………………………………………………………
……………………………………………………………………………………………………………
………………………………………………………………………………………………………....

 Quitter « Debug » et redémarrer.


 Ecrire un programme en langage assembleur du 8086 qui permet de faire la multiplication des deux
valeurs A0h et 435Bh et stocker le résultat dans des cases mémoires.

Programme :
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………

 Exécuter votre programme et remplir le tableau suivant :

@....... @....... @....... @....... IP Ax Bx Cx Dx

 Commenter le résultat :
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
…………………………………………………........................................................................................
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
………………………………………………….......................................................................................

3.4. Division
 Quitter « Debug » et redémarrer.
 Ecrire un programme en langage assembleur du 8086 qui permet de faire la division de la case mémoire
@250h sur @260h (valeurs au choix) et stocker le résultat dans @270h (@270=@250 / @260) et le
reste dans @280.

Programme :
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
 Exécuter votre programme et remplir le tableau suivant :

4/5 Dr. [Link]


@250 @251 @260 @270 @280 IP Ax Bx Cx Dx

 Commenter le résultat :
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
…………………………………………………........................................................................................
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
…………………………………………………........................................................................................

3.5. AND
 Quitter « Debug » et redémarrer.
 Effectuer un AND entre le registre Ah contenant la valeur A7h et la valeur 15h de @250 et mettre le
résultat dans @260h.
Programme :
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………

 Exécuter votre programme et remplir les tableaux suivants :

@250 @260 @270 IP Ax Bx Cx Dx

Registre d’état :

 Commenter le résultat ainsi que les valeurs du registre d’état :


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

5/5 Dr. [Link]

Vous aimerez peut-être aussi