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 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 ’$’.
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !