Vous êtes sur la page 1sur 4

Architecture des ordinateurs

TP architecture des ordinateurs


Salle de TP avec stations 64 bits (Windows 7 ou Windows 10)
Dans ces salles les stations ne peuvent pas exécuter le système d'exploitation MsDos utilisé par les
logiciels du TP (TASM, TLINK, TD). Il faut utiliser pour le TP une machine virtuelle 32 bits (Windows XP).
 Copier le répertoire U:\ArchiOrdi\Virtual Machines à la racine du disque C:\
 Lancer le programme VMware Player à l'aide du raccourci U:\ArchiOrdi\VMware Player. Si le répertoire
Virtual Machines a bien été copié à la racine de C:\ , il suffit de cliquer sur Windows XP pour lance le
système d'exploitation. Sur le bureau vous aurez le répertoire sources avec tous les fichiers
nécessaires.
 Connecter vous au serveur de l'école pour avoir accès au volume U:\ afin de pouvoir y déposer à la fin
du TP votre répertoire sources.

1. Dans les favoris réseau entrer le chemin \\fsedu

2. Identifier vous ensuite avec votre compte eigsi


en le postfixant par @eigsinet.

Exemple :
daniel.dupont.22@eigsinet
Puis fournir votre mot de passe habituel.

Salle de TP avec stations Windows 7 32 bits


Ces stations peuvent exécuter le système d'exploitation MsDos utilisé par les logiciels du TP (TASM, TLINK,
TD).

Préparation du TP:
 Copier le répertoire U:\ArchiOrdi\TP1ARCHI sur votre volume local (H:)
 Renommer le document TP1_DOCUMENT_REPONSE.docx présent dans ce répertoire avec votre nom. Vous
rédigerez le compte-rendu du TP avec ce document.
 Pour les réponses visibles uniquement sur l’écran de l’ordinateur, faire une capture d’écran (voir annexe 1) et
insérer les images dans votre document.
 A la fin du TP, copier localement répertoire TP1ARCHI puis renommer avec les noms du binôme
et copier celui-ci dans le répertoire U:\ArchiOrdi\ComptesRendu\Groupe.
NE PAS IMPRIMER LA COPIE.
Copier ensuite votre répertoire source au même emplacement.
Logiciels utilisé durant le TP:
Les logiciels utilisés dans ce TP sont l'éditeur NotePad++ Crimsom Editor, l'assembleur TASM, l'éditeur de liens
TLINK et le moniteur de mise au point TD. Cette dernière commande s'exécute dans un environnement 16 bits
exécuté par le mode X86 virtuel du processeur équipant la machine. Les programmes sont écrits suivant le modèle
mémoire TINY dans lequel tous les registres de segments sont initialisés à la même valeur par le chargeur du système
d'exploitation.
Les instructions utilisées dans les programmes sont données à l’annexe 2. Commencer par lire cette annexe.
Si les extensions des fichiers ne sont pas visible, les rendre visible (Panneau de configurationOption des
DossiersAffichage et décocher Masquer les extensions...).
Exercice préliminaire
a) Répertoire SOURCES. Ouvrir une fenêtre de commande dans le répertoire SOURCES (sélectionner le répertoire,
touche  et clic droit  Ouvrir une fenêtre de commande ici). Assembler le programme modèle par la commande
asm modele (faire contrôle C à la fin de la commande TLINK (Turbo Link) pour ne pas lancer le moniteur de
mise au point TD.exe). La procédure génère les fichiers :
Programme exécutable (taille maxi 64Ki) généré par la commande TLink
Cartographie du code et des données (éditable)
Liste du programme après assemblage (éditable)
Code binaire machine généré par l'assembleur

Daniel Tschirhart - TP Architecture des ordinateurs 1/4


Architecture des ordinateurs
Contenu du fichier modele.lst :
 Colonne 1 : adresse relative de la donnée ou du code
 Colonne 2 : donnée ou code instruction.
o Si l'instruction comporte 3 ou 4 octets les deux derniers octets sont les données ou l'adresse mémoire
sur laquelle porte l'instruction (format petit boutiste). Le premier octet plus et éventuellement le
deuxième octet représente l'instruction. Les adresses des instructions de saut (jxx) sont exprimées en
valeurs relatives signées (fin de l'instruction  adresse cible). Si le déplacement de la cible du saut
est inférieure à 256 octets le l'adresse le déplacement relatif est exprimé sur un octet. Les adresses des
instructions d'appel de sous programmes (Call) sont exprimées en valeurs relatives sur 16bits.
o Si l'instruction est suivie de la lettre r il s'agit d'une adresse recalculée par l'éditeur de lien afin de
d'allouer correctement la donnée.

Contenu du fichier modele.map :


 Donne la cartographie du code (class CODE), des données initialisées (class DATA) et des données non
initialisées (class BSS).
Nota : les 256 premiers octets de code sont réservés par le système. La taille effective de votre est donc celle
données par la classe CODE – 256.

Exercice 1
a) Répertoire SOURCES. Programme (E1.asm ou e1.asm) en langage assembleur
Que fait ce programme ?
b) Ouvrir une fenêtre de commande dans le répertoire SOURCES (sélectionner le répertoire, touche  et clic droit 
Ouvrir une fenêtre de commande ici). Assembler le programme par la commande asm E1 (faire contrôle C à la
fin de l'assemblage pour ne pas faire l'édition des liens)
c) Editer le fichier e1.lst et e1.map
1. Quelle est la taille totale des données
2. Quelle est la taille totale du code
3. Quelle sont les données relocalisées et pourquoi
4. Call DoIt est un appel au sous-programme d'emplacement DoIt. Donner le code de cette instruction.
Les deux derniers octets de l'instruction précise l'adresse de branchement à DoIt.
Quel type de branchement est effectué (absolu ou relatif , justifier.).
d) Tester le programme avec la commande dbg e1
1. Donner l'adresse mémoire absolue du programme (adresse de départ dans le segment = 0).
2. Donner l'adresse mémoire absolue du sommet de pile (contenu initial charge dans SP)
3. Exécuter le programme mode pas à pas (F7) et observer la valeur des registres et des indicateurs.

Exercice 2 : e2.asm
a) Sauvegarder E1.asm sous E2.asm.
b) Modifier la valeur 4567H de façon à provoquer une retenue (prendre la valeur minimale).
c) Assembler (asm e2) puis exécuter (dbg e2) le programme en mode trace pour vérifier votre calcul. Faire une copie
d'écran.

Exercice 3 : e3.asm
Soit le programme assembleur suivant (nota toutes les données sont en base hexadécimale).

Ce programme initialise la zone mémoire constitué d’un tableau de données 16bits situé à partir de
l’adresse 2000H avec l’entier 16 bits 1.
Nota [valeur] ou [registre] indique contenu mémoire pointé (indiqué)
par valeur ou registre.

a) Que fait l’instruction située à l’adresse 0C94:106. Nota : le terme WORD PTR signifie que la donnée transférée à
l’adresse indiquée par [BX] doit être considéré comme un mot de 16bits (BYTE PTR indique un mot pointé de 8
bits). Pour quelle raison faut-il préciser WORD PTR dans cette instruction ?
b) Pour l’instruction située à l’adresse 0C94:10A, justifier le fait que l’on ajoute 2 à BX (au lieu de simplement
incrémenter (ajouter 1 à) BX).
c) Donner la taille en octets de la zone mémoire initialisée.
Daniel Tschirhart - TP Architecture des ordinateurs 2/4
Architecture des ordinateurs
d) Ecrire un programme E3.asm initialisant la zone mémoire .DATA? sur une longueur de 31 octets.
Déclaration : ZONE DB 31 DUP (?)
e) Assembler puis charger le en mémoire (asm e3 puis dbg e3).
Mettre un point d'arrêt après l'appel de DoIt (Breakpoint Toggle ou Breakpoint At) puis lancer le programme avec
la commande GO (F9). Faire une copie d'écran de la zone initialisée et la joindre dans votre rapport.

Exercice 4 : E4.asm
 Enregistrer E3.asm sous E4.asm. Modifier le programme pour qu'il initialise 64 mots de 16 bits avec la valeur 1, puis
additionner les 64 mots de 16 bits adjacents et mémoriser la somme dans la variable 16 bits SOMME située après la
zone initialisée.
 Assembler puis charger le en mémoire (asm e4 puis test e4).
Mettre un point d'arrêt après l'appel de DoIt (Breakpoint Toggle ou Breakpoint At) puis lancer le programme avec la
command GO (F9). Faire une copie d'écran de la zone initialisée et du résultat et la joindre dans votre rapport.

Exercice 5 : E5.asm Debut


 Texte est une zone mémoire initialisée avec texte suivant.
Déclaration : BX = offset ZEBRA - 1

ZEBRA DB 'L''OMBRE DU ZEBRE N''A PAS DE RAYURES', 0

Nota : le caractère <'> signifie début ou fin d'un ensemble de


caractères (chaine de caractères). Pour incorporer ce caractère dans la
chaine il faut le doubler.
BX = BX + 1
 Que fait l'algorithme ci-contre ?
 Ecrire le programme correspondant cet algorithme oui
Remarque : cet algorithme est optimisé pour la vitesse en Ret [BX] == 0

minimisant les rechargements du cache du processeur. Justifier cette


non
dernière remarque.
On utilisera les instructions suivantes non vues précédemment : oui
[BX] < ‘A’
Comparaison de [BX] avec valeur 8 bits
CMP [BX], BYTE PTR valeur non

oui
Saut inconditionnel [BX] > ‘Z’
JMP adresse
non
Saut conditionnel avec cond = Z, L, G voir page suivante
Jcond adresse [BX] = [BX] + 20H

Addition de valeur au contenu de l’adresse pointé par BX


Add [BX], BYTE PTR valeur

Daniel Tschirhart - TP Architecture des ordinateurs 3/4


Architecture des ordinateurs

Annexes 1 : comment faire une capture d’écran.


Dans Menu Démarrer/ rechercher taper : Outil Capture. Epingler le raccourci à la barre des taches (clic droit épingler ...).

Annexe 2 : modes d’adressages, éléments de syntaxe de l'assembleur et


instructions du processeur i8086 utilisés dans le TP.
 Eléments de syntaxe de l'assembleur
Déclaration d'une donnée 16Bits (ici D1) initialisée avec 0A123H
D1 DW 0A123H ; DW pour 16 bits, DB pour 8 bits
Déclaration d'une donnée 16Bits (ICI RES) non initialisée
RES DW ?
Déclaration d'un tableau (ici TAB) de 256 octets non initialisée
TAB DB 256 DUP (?)

 Modes d'adressage
Adressage registre
reg1  reg2.
Exemples: Mov AX, BX ; AX  BX
Add AX, DX ; AX  AX + DX
And AX, CX ; AX  AX & BX
Adressage immédiat
reg1, constante : reg1  constante.
Exemple: Mov CX, 40 ; CX  6410

Adressage mémoire indirect


reg1, [constante] : reg1  [constante].
Exemples: Mov CX, 4000H ; CX  4000H
Mov WORD PTR [BX], 1 ; [BX]  0001 => [4000H] = 01, [4001H] = 00

Adressage indirect indexé


reg1, [reg2] : reg1  [reg2].
reg1, [reg2 + constante] : reg1  [reg2 + constante].

Exemples: Mov BX, 2000


Mov AX, [BX] ; AX  le contenu du mot mémoire d’adresse 2000H
Add byte Ptr [BX], 20 ; [2000]  [2000] + 20H

Ces modes d’adressages s’adressent aux instructions de déplacement, aux opérations logiques et arithmétiques.

 Instructions du processeur i8086 utilisés dans le TP


Déplacement de données: Mov
Addition : Add
Comparaison : Cmp
Décrémentation : Dec
Incrémentation : Inc
Saut si zéro : JZ adresse
Saut si non zéro : JNZ adresse
Saut si plus petit : JL adresse
Saut si plus grand : JG adresse
Arrêt de programme : INT 20

Daniel Tschirhart - TP Architecture des ordinateurs 4/4

Vous aimerez peut-être aussi