100% ont trouvé ce document utile (1 vote)
49 vues2 pages

TP1 Calc

Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1/ 2

Module : Calculateurs Janvier 2021

L3 Télécoms, Département d’Electronique.

TP1: Assembleur du 8086


Familiarisation avec l’outil SIM 86
SIM est un outil de simulation de développement pour l’assembleur du processeur d’INTEL 8086 et
8085. Il s’agit d’une commande MS-DOS qui se présente sous forme d’un fichier exécutable sim.exe.
Cet outil permet de :
 Visualiser et modifier les registres généraux, les pointeurs et les registres segment du processeur.
 Visualiser et modifier les indicateurs (flags) du processeur
 Lire le contenu et écrire dans les cases mémoires en spécifiant leurs adresses sous forme de
couple Segment:Offset
 Saisir des instructions en assembleur 8086, de les assembler et de visualiser le code machine
obtenu.
 Désassembler du code machine pour obtenir des mnémoniques 8086
 Lancer l’exécution d’un programme (assembleur) en mode simulation et effectuer les tests, les
vérifications et les corrections qui s’imposent (Debbuging).
 Saisir et exécuter des programmes en mode réel (Mode Privilégié)

Travail demandé

1. Environnement du SIM86

A partir du dossier /Desktop/SIM86, Lancer la commande sim.exe. L’environnement du logiciel SIM86


est composé de 5 fenêtres actives et de la ligne de commande repérée par le symbole >>.
Les commandes SIM doivent être saisies et exécutées à partir de la ligne de commande :
>> Commande →

a) Taper la commande >>DSCRN. Identifier et décrire les 5 fenêtres du simulateur : fenêtre


processeur, fenêtre Flags, fenêtre désassembleur, fenêtre micro-étapes, fenêtre état du
simulateur.
b) Taper la commande >> Big. Que constatez-vous ?

2. Registres du processeur

a) Taper la commande >> Nom-Registre Valeur ( Exemple : >> Ax FFFF ), que constatez-vous ?
b) Affichage en binaire, en hexadécimal ou en décimal. Taper la commande >> Base Ax Bin, que
constatez-vous ? Taper la commande >> Base * Bin, quels sont le registres concernés par
l’affichage en mode binaire ? pour revenir en affichage Hexadécimal, taper >> Base * Hex
c) Que proposez-vous pour modifier l’état des flags? à titre d’exemple, mettre C=1, S=1 et P=1 et
tous les autres flags à zéro
d) Restauration des valeurs initiales : Tapez la commande >> NEW, que constatez-vous ?

3. Cases mémoire :
a) Commande écriture mémoire: >>E «Adresse », «Contenu» ou >>E «Adresse», «Contenu1»,
«Contenu2», …

b) Commande visualisation mémoire (Display Memory) : >>Dmem «Adresse».


La commande >> DMEM OFF permet de fermer la fenêtre d’affichage de la zone mémoire
Exemple : Tapez la commande >> E 200 FF 00 AA 22 88 1A 1B 1C
Tapez la commande >>DMEM 200.
c) Commande de désassemblage : Tapez la commande >> U 200. Observer la fenêtre de
désassemblage, que constatez vous ?

4. Saisie d’un programme en mode simulation

La commande >> A Adresse permet de saisir et d’assembler un programme à partir de l’adresse


spécifiée. L’adresse est donnée sous forme de Segment :Offset. Si on ne précise pas le segment, sa
valeur par défaut sera celle contenue dans le registre CS. L’assemblage et la génération du code
machine est effectué ligne par ligne (si l’instruction ne contient pas d’erreurs de syntaxe). A titre
d’exemple, écrire à partir de l’adresse CS :0200 le programme contenant les instructions suivantes :

mov AL, 00 (charger le register AL par la valeur 00)


mov CL, 04 (charger le register CL par la valeur 04)
Etiq: inc AL (AL ------ AL+1)
Dec CL (CL ------ CL-1)
Jnz Etiq (Se brancher à l’adresse Etiq si le dernier résultat est non nul)
Brk (point d’arrêt)

L’adresse de branchement conditionnel « Etiq » doit être déterminée lors de l’assemblage de


eme
la 3 instruction, afin de l’introduire au niveau de la dernière instruction du programme

a) La commande >> Step n permet de fixer le niveau de simulation : n=0 (Exécution complète), n=1
(Exécution pas à pas), n=2 (Exécution pas à pas)
b) La commande >> sim n permet de lancer en mode simulation l’exécution de n instructions.
Tapez la commande >> Step 0 puis lancer l’exécution du programme en mode simulation en
tapant la commande >> Sim 100 . Observer la valeur des registres avant et après l’exécution du
programme.
c) Repositionner le registre IP à la valeur 100. Relancer la simulation en mode pas à pas. Observer
l’évolution des différents registres et commenter.

5. Exécution en mode privilégié


L’exécution d’un programme assembleur en temps réel ne peut se faire qu’en mode privilégié.
Pour passer en mode privilégié il faut taper la commande >> Priv , le logiciel va afficher le
symbole « -» pour signaler le mode Priv.
Pour lancer un programme en mode Priv il faut taper – G.
Exemple : Charger CS par FFFF, Charger IP par 0000 (Chargement direct). Lancer l’exécution
réelle par la commande – G. Commenter.

Vous aimerez peut-être aussi