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.