.data $$t0: .space 4 $$t1: .space 4 $$123: .space 4 $$: .space 4 $$$: .space 4 $$$$: .space 4 $$f: .space 4 $$_: .space 4 .text __start: jal main li $v0, 10 syscall f : subi $sp, $sp, 4 sw $fp, 0($sp) move $fp, $sp subi $sp, $sp, 4 sw $ra, 0($sp) subi $sp, $sp, 4 subi $sp, $sp, 4 subi $sp, $sp, 4 lw $t0, $$123 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, -16($fp) #variable locale subi $sp, $sp, 4 sw $t0, 0($sp) lw $t2, 0($sp) addi $sp, $sp, 4 lw $t1, 0($sp) addi $sp, $sp, 4 add $t0, $t1, $t2 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, 4($fp) #variable argument $$ subi $sp, $sp, 4 sw $t0, 0($sp) lw $t2, 0($sp) addi $sp, $sp, 4 lw $t1, 0($sp) addi $sp, $sp, 4 add $t0, $t1, $t2 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, 0($sp) addi $sp, $sp, 4 sw $t0, $$ lw $t0, $$ subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, 0($sp) addi $sp, $sp, 4 move $a0, $t0 li $v0, 1 syscall li $a0, '\n' li $v0, 11 syscall addi $sp, $sp 12 # desallocation variables locales lw $ra, 0($sp) addi $sp, $sp, 4 lw $fp, 0($sp) addi $sp, $sp, 4 addi $sp, $sp, 4 #ignore valeur de retour jr $ra main : subi $sp, $sp, 4 sw $fp, 0($sp) move $fp, $sp subi $sp, $sp, 4 sw $ra, 0($sp) li $t0, 1 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, 0($sp) addi $sp, $sp, 4 sw $t0, $$t0 lw $t0, $$t0 subi $sp, $sp, 4 sw $t0, 0($sp) li $t0, 0 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t2, 0($sp) addi $sp, $sp, 4 lw $t1, 0($sp) addi $sp, $sp, 4 add $t0, $t1, $t2 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, 0($sp) addi $sp, $sp, 4 sw $t0, $$123 subi $sp, $sp, 4 #Val Retour lw $t0, $$123 subi $sp, $sp, 4 sw $t0, 0($sp) jal f addi $sp, $sp, 4 #désalocation des arguments addi $sp, $sp 0 # desallocation variables locales lw $ra, 0($sp) addi $sp, $sp, 4 lw $fp, 0($sp) addi $sp, $sp, 4 addi $sp, $sp, 4 #ignore valeur de retour jr $ra