.data $$tab: .space 40 .text __start: jal main li $v0, 10 syscall initialiser : subi $sp, $sp, 4 sw $fp, 0($sp) move $fp, $sp subi $sp, $sp, 4 sw $ra, 0($sp) li $t0, 8 subi $sp, $sp, 4 sw $t0, 0($sp) li $t0, 0 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t4, 0($sp) addi $sp, $sp, 4 add $t4,$t4,$t4 add $t4,$t4,$t4 lw $t0, 0($sp) addi $sp, $sp, 4 sw $t0, $$tab($t4) li $t0, 6 subi $sp, $sp, 4 sw $t0, 0($sp) li $t0, 1 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t4, 0($sp) addi $sp, $sp, 4 add $t4,$t4,$t4 add $t4,$t4,$t4 lw $t0, 0($sp) addi $sp, $sp, 4 sw $t0, $$tab($t4) li $t0, 9 subi $sp, $sp, 4 sw $t0, 0($sp) li $t0, 2 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t4, 0($sp) addi $sp, $sp, 4 add $t4,$t4,$t4 add $t4,$t4,$t4 lw $t0, 0($sp) addi $sp, $sp, 4 sw $t0, $$tab($t4) li $t0, 9 subi $sp, $sp, 4 sw $t0, 0($sp) li $t0, 3 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t4, 0($sp) addi $sp, $sp, 4 add $t4,$t4,$t4 add $t4,$t4,$t4 lw $t0, 0($sp) addi $sp, $sp, 4 sw $t0, $$tab($t4) li $t0, 4 subi $sp, $sp, 4 sw $t0, 0($sp) li $t0, 4 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t4, 0($sp) addi $sp, $sp, 4 add $t4,$t4,$t4 add $t4,$t4,$t4 lw $t0, 0($sp) addi $sp, $sp, 4 sw $t0, $$tab($t4) li $t0, 2 subi $sp, $sp, 4 sw $t0, 0($sp) li $t0, 5 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t4, 0($sp) addi $sp, $sp, 4 add $t4,$t4,$t4 add $t4,$t4,$t4 lw $t0, 0($sp) addi $sp, $sp, 4 sw $t0, $$tab($t4) li $t0, 3 subi $sp, $sp, 4 sw $t0, 0($sp) li $t0, 6 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t4, 0($sp) addi $sp, $sp, 4 add $t4,$t4,$t4 add $t4,$t4,$t4 lw $t0, 0($sp) addi $sp, $sp, 4 sw $t0, $$tab($t4) li $t0, 1 subi $sp, $sp, 4 sw $t0, 0($sp) li $t0, 7 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t4, 0($sp) addi $sp, $sp, 4 add $t4,$t4,$t4 add $t4,$t4,$t4 lw $t0, 0($sp) addi $sp, $sp, 4 sw $t0, $$tab($t4) li $t0, 4 subi $sp, $sp, 4 sw $t0, 0($sp) li $t0, 8 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t4, 0($sp) addi $sp, $sp, 4 add $t4,$t4,$t4 add $t4,$t4,$t4 lw $t0, 0($sp) addi $sp, $sp, 4 sw $t0, $$tab($t4) li $t0, 5 subi $sp, $sp, 4 sw $t0, 0($sp) li $t0, 9 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t4, 0($sp) addi $sp, $sp, 4 add $t4,$t4,$t4 add $t4,$t4,$t4 lw $t0, 0($sp) addi $sp, $sp, 4 sw $t0, $$tab($t4) 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 afficher : subi $sp, $sp, 4 sw $fp, 0($sp) move $fp, $sp subi $sp, $sp, 4 sw $ra, 0($sp) subi $sp, $sp, 4 li $t0, 0 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, 0($sp) addi $sp, $sp, 4 sw $t0, -8($fp) #variable locale e0: lw $t0, -8($fp) #variable locale subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, 4($fp) #variable argument $n subi $sp, $sp, 4 sw $t0, 0($sp) lw $t2, 0($sp) addi $sp, $sp, 4 lw $t1, 0($sp) addi $sp, $sp, 4 li $t0, 1 blt $t1, $t2 e2 li $t0, 0 e2: subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, 0($sp) addi $sp, $sp, 4 beq $t0 $0 e1 lw $t0, -8($fp) #variable locale subi $sp, $sp, 4 sw $t0, 0($sp) lw $t4, 0($sp) addi $sp, $sp, 4 add $t4,$t4,$t4 add $t4,$t4,$t4 lw $t0, $$tab($t4) 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 lw $t0, -8($fp) #variable locale subi $sp, $sp, 4 sw $t0, 0($sp) li $t0, 1 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, -8($fp) #variable locale j e0 e1: li $t0, 0 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 4 # 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 echanger : subi $sp, $sp, 4 sw $fp, 0($sp) move $fp, $sp subi $sp, $sp, 4 sw $ra, 0($sp) subi $sp, $sp, 4 lw $t0, 4($fp) #variable argument $j subi $sp, $sp, 4 sw $t0, 0($sp) lw $t4, 0($sp) addi $sp, $sp, 4 add $t4,$t4,$t4 add $t4,$t4,$t4 lw $t0, $$tab($t4) subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, 0($sp) addi $sp, $sp, 4 sw $t0, -8($fp) #variable locale lw $t0, 8($fp) #variable argument $i subi $sp, $sp, 4 sw $t0, 0($sp) lw $t4, 0($sp) addi $sp, $sp, 4 add $t4,$t4,$t4 add $t4,$t4,$t4 lw $t0, $$tab($t4) subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, 4($fp) #variable argument $j subi $sp, $sp, 4 sw $t0, 0($sp) lw $t4, 0($sp) addi $sp, $sp, 4 add $t4,$t4,$t4 add $t4,$t4,$t4 lw $t0, 0($sp) addi $sp, $sp, 4 sw $t0, $$tab($t4) lw $t0, -8($fp) #variable locale subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, 8($fp) #variable argument $i subi $sp, $sp, 4 sw $t0, 0($sp) lw $t4, 0($sp) addi $sp, $sp, 4 add $t4,$t4,$t4 add $t4,$t4,$t4 lw $t0, 0($sp) addi $sp, $sp, 4 sw $t0, $$tab($t4) addi $sp, $sp 4 # 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 trier : 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, 4($fp) #variable argument $n subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, 0($sp) addi $sp, $sp, 4 sw $t0, -16($fp) #variable locale li $t0, 1 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, 0($sp) addi $sp, $sp, 4 sw $t0, -8($fp) #variable locale e3: lw $t0, -8($fp) #variable locale subi $sp, $sp, 4 sw $t0, 0($sp) li $t0, 1 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t2, 0($sp) addi $sp, $sp, 4 lw $t1, 0($sp) addi $sp, $sp, 4 li $t0, 1 beq $t1, $t2 e5 li $t0, 0 e5: subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, 0($sp) addi $sp, $sp, 4 beq $t0 $0 e4 li $t0, 0 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, 0($sp) addi $sp, $sp, 4 sw $t0, -8($fp) #variable locale li $t0, 0 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, 0($sp) addi $sp, $sp, 4 sw $t0, -12($fp) #variable locale e6: lw $t0, -12($fp) #variable locale subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, -16($fp) #variable locale subi $sp, $sp, 4 sw $t0, 0($sp) li $t0, 1 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t2, 0($sp) addi $sp, $sp, 4 lw $t1, 0($sp) addi $sp, $sp, 4 sub $t0, $t1, $t2 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t2, 0($sp) addi $sp, $sp, 4 lw $t1, 0($sp) addi $sp, $sp, 4 li $t0, 1 blt $t1, $t2 e8 li $t0, 0 e8: subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, 0($sp) addi $sp, $sp, 4 beq $t0 $0 e7 lw $t0, -12($fp) #variable locale subi $sp, $sp, 4 sw $t0, 0($sp) li $t0, 1 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 $t4, 0($sp) addi $sp, $sp, 4 add $t4,$t4,$t4 add $t4,$t4,$t4 lw $t0, $$tab($t4) subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, -12($fp) #variable locale subi $sp, $sp, 4 sw $t0, 0($sp) lw $t4, 0($sp) addi $sp, $sp, 4 add $t4,$t4,$t4 add $t4,$t4,$t4 lw $t0, $$tab($t4) subi $sp, $sp, 4 sw $t0, 0($sp) lw $t2, 0($sp) addi $sp, $sp, 4 lw $t1, 0($sp) addi $sp, $sp, 4 li $t0, 1 blt $t1, $t2 e9 li $t0, 0 e9: subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, 0($sp) addi $sp, $sp, 4 beq $t0 $zero e10 subi $sp, $sp, 4 #Val Retour lw $t0, -12($fp) #variable locale subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, -12($fp) #variable locale subi $sp, $sp, 4 sw $t0, 0($sp) li $t0, 1 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) jal echanger addi $sp, $sp, 8 #désalocation des arguments li $t0, 1 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, 0($sp) addi $sp, $sp, 4 sw $t0, -8($fp) #variable locale j e11 e10: e11: lw $t0, -12($fp) #variable locale subi $sp, $sp, 4 sw $t0, 0($sp) li $t0, 1 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, -12($fp) #variable locale j e6 e7: lw $t0, -16($fp) #variable locale subi $sp, $sp, 4 sw $t0, 0($sp) li $t0, 1 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t2, 0($sp) addi $sp, $sp, 4 lw $t1, 0($sp) addi $sp, $sp, 4 sub $t0, $t1, $t2 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, 0($sp) addi $sp, $sp, 4 sw $t0, -16($fp) #variable locale j e3 e4: 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) subi $sp, $sp, 4 #Val Retour jal initialiser subi $sp, $sp, 4 #Val Retour li $t0, 10 subi $sp, $sp, 4 sw $t0, 0($sp) jal afficher addi $sp, $sp, 4 #désalocation des arguments subi $sp, $sp, 4 #Val Retour li $t0, 10 subi $sp, $sp, 4 sw $t0, 0($sp) jal trier addi $sp, $sp, 4 #désalocation des arguments subi $sp, $sp, 4 #Val Retour li $t0, 10 subi $sp, $sp, 4 sw $t0, 0($sp) jal afficher 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