© Jacques Berger 2010
Les 32 registres de MIPS
Nom
Numéro Usage
Préserver lors d'un
appel de fonction
$zero
$at
$v0
$v1
$a0
$a1
$a2
$a3
$t0
$t1
$t2
$t3
$t4
$t5
$t6
$t7
$s0
$s1
$s2
$s3
$s4
$s5
$s6
Advertisement
$s7
$t8
$t9
$k0
$k1
$gp
$sp
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Advertisement
22
23
24
25
26
27
28
29
La valeur constante 0.
Réservé pour l'assembleur
Valeur de retour
Valeur de retour
Argument pour un appel de fonction
Argument pour un appel de fonction
Argument pour un appel de fonction
Argument pour un appel de fonction
Registre temporaire
Registre temporaire
Registre temporaire
Registre temporaire
Registre temporaire
Registre temporaire
Registre temporaire
Registre temporaire
Registre sauvegardé
Registre sauvegardé
Registre sauvegardé
Registre sauvegardé
Registre sauvegardé
Advertisement
Registre sauvegardé
Registre sauvegardé
Registre sauvegardé
Registre temporaire supplémentaire
Registre temporaire supplémentaire
Réservé pour le système d'exploitation
Réservé pour le système d'exploitation
Global pointer
Pointeur vers les données statiques du programme
(ex. Variables globales)
Stack pointer
Il faut soustraire de $sp pour ajouter à la stack,
-
Non
Non
Non
Non
Non
Non
Non
Non
Non
Non
Non
Non
Non
Non
Non
Oui
Advertisement
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Non
Non
Non
Non
Oui
Oui
© Jacques Berger 2010
additionner pour en enlever.
$fp
$ra
30
31
Frame pointer
Pointeur sur le cadre d'appel lors d'un appel de
fonction
Return address
L'adresse de retour d'un appel de fonction
Oui
Oui
Les registres en gras sont ceux qu'il faut sauvegarder lors d'un appel de fonction.
Les registres en rouge sont ceux qu'il vaut mieux ne jamais modifier directement.