.data v$t0: .space 4 v$t1: .space 4 v$123: .space 4 v$: .space 4 v$$: .space 4 v$$$: .space 4 v$f: .space 4 v$_: .space 4 .text ___start: jal f_main li $v0, 10 syscall # stoppe l'execution du processus f_f: subi $sp, $sp, 4 # empile registre sw $fp, 0($sp) move $fp, $sp # nouvelle valeur de $fp subi $sp, $sp, 4 # empile registre sw $ra, 0($sp) subi $sp, $sp, 12 # allocation variables locales lw $t1, v$123 # lit variable dans $t1 subi $sp, $sp, 4 # empile registre sw $t1, 0($sp) lw $t1, -16($fp) # lit variable dans $t1 subi $sp, $sp, 4 # empile registre sw $t1, 0($sp) lw $t1, 0($sp) # depile vers registre addi $sp, $sp, 4 lw $t0, 0($sp) # depile vers registre addi $sp, $sp, 4 add $t2, $t0, $t1 subi $sp, $sp, 4 # empile registre sw $t2, 0($sp) lw $t1, 4($fp) # lit variable dans $t1 subi $sp, $sp, 4 # empile registre sw $t1, 0($sp) lw $t1, 0($sp) # depile vers registre addi $sp, $sp, 4 lw $t0, 0($sp) # depile vers registre addi $sp, $sp, 4 add $t2, $t0, $t1 subi $sp, $sp, 4 # empile registre sw $t2, 0($sp) lw $t1, 0($sp) # depile vers registre addi $sp, $sp, 4 sw $t1, v$ # stocke variable lw $t1, v$ # lit variable dans $t1 subi $sp, $sp, 4 # empile registre sw $t1, 0($sp) lw $a0, 0($sp) # depile vers registre addi $sp, $sp, 4 li $v0, 1 syscall # ecriture li $a0, '\n' li $v0, 11 syscall # ecrire char addi $sp, $sp, 12 # desallocation variables locales lw $ra, 0($sp) # depile vers registre addi $sp, $sp, 4 lw $fp, 0($sp) # depile vers registre addi $sp, $sp, 4 jr $ra f_main: subi $sp, $sp, 4 # empile registre sw $fp, 0($sp) move $fp, $sp # nouvelle valeur de $fp subi $sp, $sp, 4 # empile registre sw $ra, 0($sp) li $t0, 1 subi $sp, $sp, 4 # empile registre sw $t0, 0($sp) lw $t1, 0($sp) # depile vers registre addi $sp, $sp, 4 sw $t1, v$t0 # stocke variable lw $t1, v$t0 # lit variable dans $t1 subi $sp, $sp, 4 # empile registre sw $t1, 0($sp) li $t0, 0 subi $sp, $sp, 4 # empile registre sw $t0, 0($sp) lw $t1, 0($sp) # depile vers registre addi $sp, $sp, 4 lw $t0, 0($sp) # depile vers registre addi $sp, $sp, 4 add $t2, $t0, $t1 subi $sp, $sp, 4 # empile registre sw $t2, 0($sp) lw $t1, 0($sp) # depile vers registre addi $sp, $sp, 4 sw $t1, v$123 # stocke variable subi $sp, $sp, 4 # allocation valeur de retour # empile arg 0 lw $t1, v$123 # lit variable dans $t1 subi $sp, $sp, 4 # empile registre sw $t1, 0($sp) jal f_f addi $sp, $sp, 4 # desallocation parametres addi $sp, $sp, 4 # valeur de retour ignoree lw $ra, 0($sp) # depile vers registre addi $sp, $sp, 4 lw $fp, 0($sp) # depile vers registre addi $sp, $sp, 4 jr $ra