| Postscript, | Luc Maranget | Le poly |

|
|
|
|
add r1, r2, o qui place dans r1 la valeur
r2 + o.
lw r1, n (r2) place dans r1 le mot contenu à
l'adresse r2 + n.
sw r1, n (r2) place r1 dans le mot contenu à
l'adresse r2 + n.
bne r, a, l saute à l'adresse l si r et a
sont différents,
jal o qui sauve pc+4 dans ra et saute à l'étiquette o.
|
|
|
| Assembleur | Langage machine | Commentaire |
blt r, o, a |
slt $1,r, o |
Justifie le registre at ($1) |
bne $1, $0,a |
réservé par l'assembleur. | |
li $t0,400020 |
lui $1,6 |
charge les 16 bits de poids fort |
ori $8, $1,6804 |
puis les 16 bits de poids faible | |
add $t0, $t1,1 |
addi $8, $9,1 |
addition avec une constante |
move $t0,$t1 |
addu $8, $0,$9 |
addition ``unsigned'' avec zéro |
% spim -notrap -file hello.spi)et regarder dans la zône
Text Segments.
|
|
__start. -notrap, le chargeur ajoute un prélude
qui se branche à l'étiquette main (remplacer alors
__start par main).
|
|
|
Programme équivalent
|
Code Mips
|
p, on utilise l'instruction
jalp, qui transfère le contrôle en p,
et sauve l'adresse de l'instruction suivante dans ra.j$ra.
writeln qui
imprime un entier
puis un retour à la ligne.
|
|
j et jal.
|
Code de la fonction
|
Usage de la fonction
|
|
|
| fn | ⎧ ⎪ ⎪ ⎨ ⎪ ⎪ ⎩ |
|
|
|
sub) et désalloue (add) l'espace en
pile par blocs pour plusieurs registres à la fois.
|
|
|
|
|
|
Ce document a été traduit de LATEX par HEVEA