.data .text __start: jal main li $v0, 10 syscall max : subi $sp, $sp, 4 sw $fp, 0($sp) move $fp, $sp subi $sp, $sp, 4 sw $ra, 0($sp) lw $t0, 8($fp) #variable argument $a subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, 4($fp) #variable argument $b 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 e0 li $t0, 0 e0: subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, 0($sp) addi $sp, $sp, 4 beq $t0 $zero e1 lw $t0, 4($fp) #variable argument $b subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, 0($sp) addi $sp, $sp, 4 sw $t0 12($fp) #Adresse de retour addi $sp, $sp 0 # desallocation variables locales lw $ra, 0($sp) addi $sp, $sp, 4 lw $fp, 0($sp) addi $sp, $sp, 4 jr $ra j e2 e1: e2: lw $t0, 8($fp) #variable argument $a subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, 0($sp) addi $sp, $sp, 4 sw $t0 12($fp) #Adresse de retour addi $sp, $sp 0 # desallocation variables locales lw $ra, 0($sp) addi $sp, $sp, 4 lw $fp, 0($sp) addi $sp, $sp, 4 jr $ra 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 main : 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 li $v0 5 syscall move $t0, $v0 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, 0($sp) addi $sp, $sp, 4 sw $t0, -8($fp) #variable locale li $v0 5 syscall move $t0, $v0 subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, 0($sp) addi $sp, $sp, 4 sw $t0, -12($fp) #variable locale subi $sp, $sp, 4 #Val Retour lw $t0, -8($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) jal max addi $sp, $sp, 8 #désalocation des arguments lw $t0, -8($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 li $t0, 1 beq $t1, $t2 e3 li $t0, 0 e3: subi $sp, $sp, 4 sw $t0, 0($sp) lw $t0, 0($sp) addi $sp, $sp, 4 beq $t0 $zero e4 lw $t0, -8($fp) #variable locale 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 j e5 e4: lw $t0, -12($fp) #variable locale 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 e5: addi $sp, $sp 8 # 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