Guide 1 Emu8086
Guide 1 Emu8086
Sainte Catholique
María
Faculté des Sciences E
Ingénieries physiques et
Formelles
Programme Professionnel d'Ingénierie
Électronique
Guide 1 : emu8086
Enseignant :
Ing. Pedro Alex Rodríguez Gonzales
Élève :
Manuel Aronés Vargas
Sergio Granados Quezada
Cours :
Microprocesseurs
Arequipa -2018
Introduction à l'EMU8086 Faculté : Études Technologiques.
École: Électronique.
Matière : Microprocesseurs
Objectif Général
Objectifs spécifiques
Matériaux et équipements
•Guide de laboratoire
Ordinateur PC avec le programme EMU8086
Procédure
3) Vous verrez une fenêtre où vous écrirez vos futurs programmes, appelés en
code source général
4) Depuis là, vous pouvez créer un nouveau document. Observez la figure 2 "Choisissez le code
modèle
Figure 2
On vous présentera six options, choisissez "espace de travail vide". Vous remarquerez (appuyez-vous sur
la Figure 3) une fenêtre avec la barre de menu classique (Fichier, Édition, etc.) avec quelques
éléments distinctifs (Compile, Emulateur, Math, etc.) ainsi qu'une série de
boutons qui vous permettent d'ouvrir un nouveau fichier, de compiler, d'émuler et d'autres
fonctions utiles. Dans le texte, vous observerez deux lignes de commande qui sont un
en-tête nécessaire pour créer un fichier de type COM.
Figure 3
Figure 4
ORG 100h
DÉBUT
FIN
ret ;terminer le programme
8) Ouvrez le fichier source nommé [Link], comme vous le remarquerez c'est le même programme
que précédemment analysé.
9) En utilisant le bouton respectif, compilez le code source, notez que le programme vous
informe qu'il créera un fichier avec l'extension COM.
Quel nom le système attribue-t-il au fichier .COM ? P1
10) Si aucune erreur de compilation n'est signalée, procédez à l'émulation du programme. Analysez le
informations qui sont présentées en s'aidant de la Figure 5.
11) Vous pouvez consulter une copie du code source dans laquelle la ligne est marquée.
instruction qui sera exécutée. Vous pouvez également voir dans la fenêtre de l'émulateur
le contenu des enregistrements, la mémoire et le programme désassemblé. Si vous avez
problèmes pour interpréter cette information, veuillez demander de l'aide par
partie de son instructeur.
Figure 5
12) Copiez les données stockées dans les registres avant d'exécuter le programme :
13) Exécutez complètement le programme (EXÉCUTER) et notez les données résultantes. Vérifiez si
concordent avec les données que vous attendiez.
AX: 00 00 BX : 00 00 CX : 00 13 DX : 00 00
DI : 0000 SI : 0000
Si je charge 7A
17) Continuez à exécuter le programme étape par étape jusqu'à l'instruction RET, au même
temps remplissez les espaces vides du TABLEAU 1. Si vous avez des doutes sur cette activité,
Veuillez demander l'assistance de votre instructeur.
18) Continuez à exécuter les instructions jusqu'à ce que le programme soit terminé.
19) Fermez la fenêtre de l'émulateur, mais ne fermez pas la fenêtre du code source.
20) Créez un nouveau fichier, type COM, et écrivez le code appelé DEUXIÈME
PROGRAMA, après son en-tête respectif, n'oubliez pas les tabulations.
DEUXIÈME PROGRAMME
NOTA : Remarquez que l'instruction MOV a été écrite de différentes manières.
DÉBUT #FAIRE_COM#
ORG 100h
DX = 112 h
BX=DX
AL= A
MOV BX, DX ; Copie DX en BX, mouvement entre
AH = 61h
M [BX] = AH
;enregistrements
MOV AL, 'A' Stocke le caractère dans AL
MOV AH, 61h ; Sauvegarde la donnée dans AH
M [BX +1] = AL
CX = M [BX ]] MOV [BX], AH ; Stocke à l'adresse indiquée par
; DS:BX, indirect
21) Émulez le programme et avant de l'exécuter, notez dans le TABLEAU 2 le contenu des
directions qui ont un déplacement 0112h et 0113h, ainsi que le contenu de
CX en la columna Inicio. Más adelante se retomará este punto para comparar los
changements dans les données.
22) Corrige étape par étape le programme juste avant d'exécuter la cinquième instruction,
essayant de prédire les actions qui seront réalisées, en s'aidant des
Commentaires de chaque instruction, si vous avez des problèmes, consultez l'instructeur.
25) Exécutez étape par étape le reste des instructions, en prenant note des résultats.
27) Exécutez le programme étape par étape, en notant dans le TABLEAU 3 la valeur de chaque donnée
que l'on lui demande, en prenant comme référence la procédure qu'il a suivie
la TABLE 1.
28) Fermez la fenêtre de l'émulateur, mais ne fermez pas la
fenêtre du code source.
29) Écrivez un nouveau programme .COM et tapez le code appelé TROISIÈME PROGRAMME.
30) Émulez et exécutez le programme (exécuter) et notez les informations qui s'affichent dans la
écran utilisateur, doit observer un caractère 'A' avec une couleur pour le fond et
pour le caractère. Notez cette information.
__________________________________________________________________
__________________________________________________________________
TROISIÈME PROGRAMME
#faire_com#
DÉBUT
Org 100h
AX = 0B800h
DS = AX MOUV AX, 0B800h
MOV DS, AX
M [BX] = CX
MOUV [BX], CX ; Copier le contenu de CX dans le
; adresse (B800:015E) DS:BX
FIN
RET
Dans le registre BX, la donnée 010E est stockée au lieu de 015E, la donnée de CX est remplacée.
parce que BX est à un autre endroit de la mémoire qui est 15EH.
33) Modifiez maintenant les données stockées dans CH en les remplaçant par 11010000b et
observez son effet, notez vos observations.
__________________________________________________________________
__________________________________________________________________
35) Essayez d'apporter quelques modifications à CH, CL et BX, notez vos observations :
__________________________________________________________________
__________________________________________________________________
36) Informez votre instructeur que vous avez terminé la pratique.
Analyse des résultats
a) Premier programme.
En introduisant des données dans les registres du microprocesseur, on utilise différents formats.
(bases de numération) combien et lesquelles sont-elles ?
La syntaxe de l'instruction MOV définit trois champs : instruction, donnée1 et donnée2. Au
déplacer les données, quelle est la source et quelle est la destination ?
En observant le tableau 1, on remarque que la même instruction MOV se voit assigner différentes
codes hexadécimaux, à quoi cela est-il dû ?
Quelle est la fonction de l'enregistrement IP dans le PREMIER PROGRAMME ?
Dans la colonne OFFSET du tableau1, ceux-ci ne s'incrémentent pas à un rythme constant. Pourquoi ?
quoi?
b) Deuxième programme.
En comparant les deux premières instructions, quelles différences y a-t-il en les exécutant, étant
que les deux sont MOV ?
Dans les trois dernières instructions, des crochets (parenthèses carrées) ont été inclus dans les
instructions Quelles différences avez-vous remarquées dans son exécution par rapport aux deux premières
instructions ?
Pourquoi, en exécutant la septième instruction, les données sont-elles stockées dans CX dans cet ordre
spécifique?
c) Troisième programme.
En exécutant le programme, au fur et à mesure que je faisais les modifications, quel effet concret
logra el cambio en el registro BX?
En modifiant CH, quels bits spécifiques ont été modifiés pour apporter des changements en arrière-plan et
couleur des caractères ?
Recherche complémentaire
Investigue :
Qu'est-ce que les modes d'adressage ?
Los modos de direccionamiento indican la manera de obtener los operandos
Combien de modes d'adressage le microprocesseur 8086 a-t-il et lesquels sont-ils ?
Admet tous, mais nous allons prendre par exemple ceux-ci ci-dessous.
Adressage direct : lorsque l'opérande est une adresse mémoire. Celle-ci peut être
spécifiée avec sa valeur entre [ ], ou bien par une variable définie au préalable (comment
définir des étiquettes se verra plus tard). Exemple :
MOV BX,[1000] ;stocke dans BX le contenu de l'adresse mémoire DS:1000.
Adressage indirect par registre : lorsque l'opérande se trouve en mémoire dans une
position contenue dans un registre (BX, BP, SI ou DI). Exemple :
MOV AX,[BX]; stocke dans AX le contenu de l'adresse mémoire DS:[BX].
MOV [BP],CX ; stocke dans l'adresse pointée par BP le contenu de CX.
Adressage par registre de base : lorsque l'opérande est en mémoire à une position
pointée par le registre BX ou BP auquel on ajoute un certain déplacement Exemple :
MOV AX, [BP] + 2 ; stocke dans AX le contenu de la position mémoire qui en résulte
de sumar 2 au contenu de BP (dans le segment de pile). Équivalent à MOV AX, [BP
+ 2]
XCHG
Réalisez l'échange entre les valeurs des opérandes. Il peut y avoir des opérandes dans les registres et
en mémoire
XCHG reg, mem
XCHG reg, reg
XCHG mem, reg
Bibliographie
Brey, B. [Link] microprocesseurs Intel 8086 / 8088, 80186, 80286, 80386 et 80486.
Architecture, programmation et interfaces Prentice Hall, Mexico DF, 19953
Bibliothèque UDB001.6404 B847 1997