Systèmes à Microprocesseurs - TP De Simulation N°1
Compte Rendu : Systèmes à Microprocesseurs - TP De Simulation N°1. Recherche parmi 300 000+ dissertationsPar nabil1986 • 12 Avril 2013 • 3 242 Mots (13 Pages) • 6 061 Vues
Systèmes à microprocesseurs - TP de simulation N°1
P a r M . J A R O U P a g e | 1
Systèmes à Microprocesseurs
TP de simulation N°1 : Emulateur de P 80x86 : emu8086
I. Objectifs
• Prise en main de l’émulateur emu8086.
• Etude du langage assembleur du P 8086
• Développer des programmes simples dans l’environnement de l’émulateur emu8086
II. Matériel Utilisé
• Micro-ordinateur IBM et compatible muni d’un μP80x86.
• Emulateur de P 8086 : emu8086
III. Introduction
Dans un premier temps, pour simplifier l’apprentissage de l’assembleur x86, nous allons travailler sur un émulateur logiciel qui simule un processeur 8086. L’utilisation de cette émulation n’est pas obligatoire car nos programmes, écrits en assembleur 8086, fonctionne normalement sur un processeur moderne comme l’Intel core i7, ou l’AMD Phenom.
Cependant, comme vous le verrez tout au long de ces TPs, l’émulateur nous fourni un environnement avancé pour l’apprentissage des mécanismes et du fonctionnement du processeur.
Emu8086 se présente dans un premier temps comme un éditeur de texte classique, avec le support d’une colorisation syntaxique du code assembleur (mode éditeur).
Le fichier squelette.asm contient la déclaration d’un segment de pile de 512 octets, la déclaration d’un segment de données vide ainsi que la déclaration d’un segment de code. Dans ce dernier, on retrouve la directive ASSUME permettant d’initialiser les trois registres de segments CS, DS et SS.
On trouve aussi une zone de déclaration de fonctions publiques, une zone de déclaration de fonctions externes une zone de déclaration de fonctions locales, puis du code assembleur.
Systèmes à microprocesseurs - TP de simulation N°1
P a r M . J A R O U P a g e | 2
Ce code débute par l’étiquette debut, puis on retrouve l’initialisation des segments de données et de pile (cette initialisation est doublée pour des raisons de compatibilité). Un espace réservé à l’écriture de vos programmes suit ces éléments. Enfin, l’étiquette fin indique (informellement) la fin du programme. Les deux lignes suivantes correspondent à l’appel standards de l’interruption DOS dont le rôle est de terminer d’un programme de manière normal (libération de la mémoire, …). Ensuite on trouve la fin du segment de code puis celle du programme.
Pensez lorsque vous écrirez un programme à bien partir de ce fichier squelette en le sauvegardant sous un autre nom avant de le modifier.
IV. Activités pratiques
Activité pratique 1 : Prise en main d’emu8086
1.1 Squelette des programmes sources
1. Créez un fichier ex1.asm identique au fichier squelette.asm donnée ci-dessous. Compilez et exécutez le programme (bouton RUN). Validez la fin de l’exécution avec OK.
STACK SEGMENT STACK
DW 256 DUP(0)
base:
STACK ENDS
DATA SEGMENT
; ici on declare les variable
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STACK
; ici on declare les fonctions publiques
; ici on declare les fonctions externes
; ici on declare les fonctions locales
; on precise a l'aide d'un commantaire
; son nom, ses entrees et ses sorties
; Procedure: name
; Entree: ...
; Sortie: ...
debut:
MOV AX, DATA
MOV DS, AX
MOV AX, STACK
MOV SS, AX
MOV SP, base
; ici on ecrit le corps du programme
fin:
MOV AH, 4CH
INT 21H
Systèmes à microprocesseurs - TP de simulation N°1
P a r M . J A R O U P a g e | 3
CODE ENDS
END debut
Fenêtre de l’éditeur de l’émulateur emu8086
Deux nouvelles fenêtres viennent de s’ouvrir, il s’agit du mode exécution de l’émulateur. La fenêtre « original source code » contient le code tel que vous l’avez écrit. La ligne surlignée en jaune est la prochaine instruction qui va être exécutée. Comme on le verra plus loin dans ce TP, il est possible d’interagir avec ce code en cliquant dessus. La zone mémoire de la fenêtre « emulator : » change pour correspondra à la partie sélectionnée par le click.
Fenêtres de travail de l’émulateur emu8086.
Systèmes à microprocesseurs - TP de simulation N°1
P a r M . J A R O U P a g e | 4
La fenêtre « emulator : » contient 4 zones que nous allons détailler ci-dessous :
Zone 1: Les boutons vont nous permettre d’exécuter notre programme soit automatiquement soit Pas à Pas, avec la possibilité de revenir en arrière et de régler un délai d’attente entre chaque instruction.
2. Réinitialisez votre programme (reload) puis exécutez-le pas à pas (single step et back step) jusqu'à la fin. Faites une nouvelle réinitialisation, réglez le délai sur 400 ms et faites une exécution normale (run)
Zone 2: La zone 2 contient une représentation des registres, et permet de visualiser leur valeur hexadécimale tout au long de l’exécution de votre programme. Il est possible de modifier la valeur des registres (simple click) ou d’ouvrir une vue détaillée du registre
...