Réponses intégrées ou à la demande |
Ces questions ne faisaient pas partie de l'examen, mais en sont une suite naturelle. On reprend les notations et les définitions du sujet de l'examen.
|
add t, $a0, 1 jal foo add $v0, t, $v0 add $v0, t, $v0 |
q1
et q2
écrit avant l'appel à la fonction foo
et lus tous
deux après: ils devront donc être mise en pile. On obtient, après mise en
pile:
add p1, $a0, 1 add $t0, $a0, 1 sw p1, 0($sp) sw $t0, 0($sp) jal foo jal foo lw r1, 0($sp) lw $t0, 0($sp) add $v0, r1, $v0 add $v0, $t0, $v0 lw r2, 0($sp) lw $t0, 0($sp) add $v0, r2, $v0 add $v0, $t0, $v0 |
add $t0, $a0, 1 sw $t0, 0($sp) jal foo lw $t0, 0($sp) add $v0, $t0, $v0 add $v0, $t0, $v0 |
move
inutiles):
1: add p1, $a0, 1 add p1, $a0, 1 2: mmv q1 q2, p1 mmv q1, p1 3: jal foo jal foo 4: mmv q2 r1, q1 mmv q2 r1, q1 5: add $v0, r1, $v0 add $v0, r1, $v0 6: mmv q1 r2, q2 mmv r2, q2 7: add $v0, r2, $v0 add $v0, r2, $v0 |
q2
en pile car sa durée de
vie ne contient plus l'appel à foo
.
En appliquant le coloriage sur la partie droite, on retrouve le code obtenu
manuellement ci-dessus.
|
1: add t, $a0, 1 add $t0, $a0, 1 2: add $s0, t, 1 add $s0, $t0, 1 sw $t0, 0($sp) 3: jal foo jal foo lw $t0, 0($sp) 4: add $v0, t, $v0 add $v0, $t0, $v0 |
1: add t, $a0, 1 add $t0, $a0, 1 add $t0, $a0, 1 sw $t0, 0($sp) 2: add $s0, t, 1 add $s0, $t0, 1 add $s0, $t0, 1 sw $t0, 0($sp) 3: jal foo jal foo jal foo lw $t0, 0($sp) lw $t0, 0($sp) 4: add $v0, t, $v0 add $v0, $t0, $v0 add $v0, $t0, $v0 5: bltz $v0, 3 bltz $v0, 3 bltz $v0, 3 |
|
|
This document was translated from LATEX by HEVEA.