TP o 1: Architecture des ordinateurs Niveau: 2 éme - f

publicité
TPo 1: Architecture des ordinateurs
Niveau: 2éme année informatique
Généralités:
-
SPIM est un simulateur qui exécute des programmes en assembleur MIPS
R2000/R3000.
Plusieurs simulateurs sont disponibles (e.g., SPIM, MARS, MIPSter, etc.).
Utiliser le menu File>Reinitialize and Load File pour charger le programme en
mémoire.
Les 2 environnements de programmation proposent un mode "step-by-step" qui
permet d'exécuter les instructions les unes après les autres. Ce mode va nous intéresser
pour comprendre les mécanismes de la programmation assembleur.
-
Vous pouvez ensuite exécuter le programme, suivant trois modes, en cite deux modes
dans ce tp: a. Simulator>Run (ou touche F5) - toutes les instructions seront exécutées,
et le contenu final de la mémoire et des registre seront visibles dans la fenêtre QtSpim.
b. Simulator>Single Step (ou touche F10) – exécution pas à pas. Après l’exécution de
chaque instruction, l’affichage est mis à jour.
-
Le menu Help fournit o Une documentation sur l’usage du simulateur : Help>QtSpim
Manual. La documentation complète : Help>Assemblers, Linkers and the SPIM
Simulator
-
Pour modifier le programme, il faut revenir dans un éditeur de texte, effectuer les
modifications et recharger le programme.
Les commentaires commencent par le symbole # et se terminent à la _n de la ligne.
Les étiquettes sont déclarées en les plaçant au début d'une ligne et en les faisant suivre
du symbole :.
Les nombres sont en base 10 par défaut. S'ils sont précédés de 0x ils sont interprétés
comme hexadécimaux.
Les chaînes de caractères sont encadrées par des doubles apostrophes ".
.ascii str Enregistre en mémoire la chaîne de caractères str, mais ne la termine pas par
un caractère nul.
.asciiz str Enregistre en mémoire la chaîne de caractères str et la termine par un
caractère nul.
.data<@> Les éléments qui suivent sont enregistrés dans le segment de données. Si
l'argument optionnel @ est présent, les éléments qui suivent sont enregistrés à partir
de l'adresse @.
.byte b1; : : : ;bn Enregistre les n valeurs dans des octets consécutifs en mémoire.
.word w1; : : : ;wn Enregistre les n quantités 32 bits dans des mots consécutifs en
mémoire.
.float f1; : : : ;fn Enregistre les n nombres flottants simples précision dans des
emplacements mémoire consécutifs.
-
-
-
.text <@> Les éléments qui suivent sont placés dans le segment de texte de
l'utilisateur. Dans SPIM, ces éléments ne peuvent être que des instructions ou des
mots. Si l'argument optionnel @ est présent, les éléments qui suivent sont enregistrés à
partir de l'adresse @.
-
Le “type” .space indique simplement que l’on réserve le nombre d’octet indiqués (sans
les mettre à zéro). Exemple:
.data
c .byte 'a' ; octet
n1 .halfword 26 ; 2 octets
n2 .word 353 ; 4 octets
tab .space 40
-
MIPS est un langage machine lisible: Si on ouvre un fichier exécutable avec un éditeur
(hexadécimal), on
obtient...01ebe814063727473747566662e6305f5f43544f525f4c5f05f5f44544f525f4c4
953545f5f05f5f4a43525f4c4953545f5f05f5f646f5f676c6f62616c5f64746f72735f6757
80636f6d706c657465642e36353331064746f725f69...
C’est une suite d’instructions comme 01ebe814, que l’on peut traduire directement de
façon plus lisible : add $t7, $t3 , $sp. C’est ce qu’on appelle l’assembleur.
L’assembleur est donc une représentation du langage machine.
-
Les registres: Il existe 32 registres de 32 bits numérotés $0; : : : ; $31 ; les registres
peuvent être accédé soit par leur numéro soit par leur nom.
On les distingue des étiquettes par le signe ’$’.
Téléchargement