Vous êtes sur la page 1sur 5

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. K.DICHOU


 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. K.DICHOU


 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. K.DICHOU


@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. K.DICHOU


@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. K.DICHOU