0% ont trouvé ce document utile (0 vote)
22 vues2 pages

Instructions MIPS courantes et leur usage

commandes

Transféré par

amahicham580
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
22 vues2 pages

Instructions MIPS courantes et leur usage

commandes

Transféré par

amahicham580
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

École nationale supérieure

d’informatique pour l’industrie et l’entreprise

Instructions MIPS courantes


Cours de compilation

Le processeur MIPS est un processeur de type RISC (Reduced Instruction Set Compu-
ting) pour lequel les instructions, de taille fixe, sont régulières et où l’accès à la mémoire
utilise des instructions spéciales. Ces processeurs possèdent de nombreux registres, les-
quels sont uniformes. Il existe un simulateur de machine MIPS, appelé SPIM, dispo-
nible sous différentes plate-formes. Son manuel, disponible à l’adresse [Link]
[Link]/~larus/HP_AppA.pdf, est une excellente introduction au fonctionnement
du MIPS. On y trouve la description de l’ensemble des instructions MIPS. Nous nous
contenterons ici de décrire les plus courantes.
Opérations sur les entiers
add $rd, $rs, $rt ajoute les contenus des registres $rs et $rt et place le résultat
dans le registre $rd.
addi $rd, $rs, i ajoute la constante i au contenu du registre $rs et place le résul-
tat dans le registre $rd.
mul $rd, $rs, $rt multiplie les contenus des registres $rs et $rt et place le résultat
dans le registre $rd.
sub $rd, $rs, $rt soustrait les contenus des registres $rs et $rt et place le résultat
dans le registre $rd.
and $rd, $rs, $rt fait le « et » logique entre les contenus des registres $rs et $rt
et place le résultat dans le registre $rd.
sll $rd, $rs, i décale les bits du contenu du registre $rs de i positions vers la
gauche, et place le résultat dans le registre $rd.
not $rd, $rs fait la négation bit à bit du contenu du registre $rs, et place le résultat
dans le registre $rd.
li $rd, i place la constante i dans le registre $rd.
move $rd, $rs copie le contenu du registre $rs dans le registre $rd.

Comparaisons
slt $rd, $rs, $rt met dans le registres $rd la valeur 1 si le contenu de $rs est plus
petit que le contenu de $rt, et 0 sinon.

1
slti $rd, $rs, i met dans le registres $rd la valeur 1 si le contenu de $rs est plus
petit que la constante i, et 0 sinon.
seq $rd, $rs, $rt met dans le registres $rd la valeur 1 si le contenu de $rs est égal
au contenu de $rt, et 0 sinon.
sne $rd, $rs, $rt met dans le registres $rd la valeur 1 si le contenu de $rs n’est
pas égal au contenu de $rt, et 0 sinon.

Branchements et sauts
b label continue à l’instruction indiquée par label.
bgez $rs, label continue à l’instruction indiquée par label si le contenu de $rs est
plus grand ou égal à zéro, continue normalement sinon. On a aussi beq $rs, $rt, label ;
bgtz $rs, label ; blez $rs, label ; bltz $rs, label ; etc.
j i saute à l’instruction i.
jal i saute à l’instruction i après avoir sauvegardé l’adresse de l’instruction suivante
dans le registre $ra.
jr $rs saute à l’instruction dont l’adresse est le contenu de $rs.

Gestion de la mémoire
lw $rd, i($rt) place dans le registre $rd le contenu de la mémoire à l’adresse donnée
par le contenu de $rt plus i.
sw $rs, i($rt) stocke le contenu du registre $rd à l’emplacement mémoire donné
par le contenu de $rt plus i.

Vous aimerez peut-être aussi