Vous êtes sur la page 1sur 2

TP1 AU : 2014/2015

UNIVERSITE IBN TOFAIL


ÉCOLE NATIONALE DES SCIENCES APPLIQUÉES (ENSA)

Cycle : Ingénieur d’état


Filière : Réseaux et systèmes de télécommunications
(1ère année)

SYSTÈMES MICROPROGRAMMÉS : DES SYSTÈMES À MICROPROCESSEURS

OBJECTIF
L’objectif de ce TP est de permettre à l’élève ingénieur de se familiariser avec la programmation en
assembleur, associé au microprocesseur 8086, et ce en utilisant l’émulateur EMU8086.
TRAVAIL 1
Nous voulons ici vérifier le fonctionnement du programme donné par la figure 1. Celui-ci permet de compter
le nombre de 1 contenu dans une variable de 16 bits, déclarée sous le nom data1. Le nombre de 1 compté
doit être sauvegardé dans une variable appelé compte.
 Compiler et émuler puis exécuter pas à pas ce programme, sous EMU8086 ?
 Arrêter l’exécution sur l’instruction mov ah, 4ch et Donner :
 La valeur du segment data (registre DS) ?
 La valeur du registre BL
 L’offset compte
 L’adresse physique DS:compte et vérifier qu’il contient la valeur du registre BL, qui est aussi le
nombre de 1 contenu dans la valeur 5F97H
 Modifier ce programme afin d’utiliser le compteur de boucle CL à la place de DL et vérifier le
fonctionnement de ce programme.

Figure 1
Page 1 sur 2
TP1 AU : 2014/2015
TRAVAIL 2
Nous voulons élaborer un programme qui permet de trouver l’octet le plus grand parmi 5 notes d’élèves.
Les 5 notes sont stockées dans une variable de type tableau nommé notes. La plus grande note trouvée doit
être stockée dans une variable nommée plus_g.
 Compléter le programme de la figure 2 ?
 Compiler et émuler puis exécuter pas à pas ce programme, sous EMU8086 ?
 Arrêter l’exécution sur l’instruction mov ax, 4ch et Donner :
 La valeur du segment data (registre DS) ?
 La valeur du registre AL
 L’offset plus_g
 L’adresse physique DS:plus_g et vérifier qu’elle contient la valeur du registre AL, qui est aussi la
note la plus élevée.

Figure 2
TRAVAIL 3
1. Ecrire un programme en assembleur qui permet de faire la somme de deux vecteurs vec1 et vec2 de 4
composantes. Le résultat sera stocké dans le vecteur vec3. Tester et vérifier le fonctionnement de ce
programme en inspectant les différents registres ainsi que et les cases mémoire sollicitées.
2. Ecrire un programme qui permet de faire la moyenne de 9 nombres (9 octets) signés contenu dans une
variable tableau nommée sign_dat. La moyenne (mot) qui sera stockée dans variable, moyenne, est la
partie entière de la division signée de la somme de ces nombres sur 9. Le reste (mot) de cette division est
stocké dans une variable, reste. Tester et vérifier le fonctionnement de ce programme en inspectant les
différents registres ainsi que et les cases mémoire sollicitées.
Page 2 sur 2

Vous aimerez peut-être aussi