#a = #b = #c = #If ( (a>=b) && (c!=0) ){ # z=c(a+b); # print z #} #else{ # print «errore» #} .data str1: .asciiz "Inserire 3 interi: " str2: .asciiz "a: " str3: .asciiz "b: " str4: .asciiz "c: " str5: .asciiz "errore" .text main: li $v0, 4 # selezione print_string la $a0, str1 # $a0 = indirizzo di string1 syscall # lancio print_string li $v0, 4 # selezione print_string la $a0, str2 # $a0 = indirizzo di string1 syscall # lancio print_string "a: " li $v0, 5 # selezione di read_int syscall # lancio read_int (in $v0) add $t0, $zero, $v0 li $v0, 4 # selezione print_string la $a0, str3 # $a0 = indirizzo di string1 syscall # lancio print_string li $v0, 5 # selezione di read_int syscall # lancio read_int (in $v0) add $t1, $zero, $v0 li $v0, 4 # selezione print_string la $a0, str4 # $a0 = indirizzo di string1 syscall # lancio print_string li $v0, 5 # selezione di read_int syscall # lancio read_int (in $v0) add $t2, $zero, $v0 If: slt $t3, $t0, $t1 bne $t3, $zero, Else # if $t3==0, goto Else beq $t2, $zero, Else Then: add $t3, $t0,$t1 mult $t3, $t2 mflo $t3 li $v0, 1 # selezione di print_int move $a0, $t3 syscall # lancio print_int j end Else: li $v0, 4 # selezione print_string la $a0, str5 # $a0 = indirizzo di string1 syscall # lancio print_string end: jr $ra