#Scrivere un programma che trova il minimo e il massimo valore di un array di numeri interi. .data start: .word 4, 8, 9, 10, 3, 54, 8, 70, 12, 23 .text main: la $a0, start #salvo in $a0, l'indirizzo d'inizio dell'array di numeri li $a1, 10 #salvo in $a1, la dimensione dell'array lw $v0, 0($a0) #salvo in $v0, la word contenuta all'indirizzo indicato dal registro $a0 lw $v1, 0($a0) #salvo in $v1, la word contenuta all'indirizzo indicato dal registro $a0 li $t1, 1 #inizializzo $t1 con il valore 1, che uso come contatore degli elementi dell'array addi $a0, $a0, 4 #incremento di 4 il contenuto di $a0 (mi permettera' di selezionare il numero/word successivo) ciclo: lw $t0, 0($a0) #salvo in $t0, la word contenuta all'indirizzo indicato dal registro $a0 bgt $t0, $v1, maggiore #se il valore contenuto in $t0 e' maggiore di quello contenuto in $v1, passo a eseguire il codice all'etichetta maggiore blt $t0, $v0, minore #se il valore contenuto in $t0 e' minore di quello contenuto in $v0, passo a eseguire il codice all'etichetta minore j continua maggiore: add $v1, $zero, $t0 #copio $t0 in $v1 j continua minore: add $v0, $zero, $t0 #copio $t0 in $v0 j continua continua: addi $a0, $a0, 4 #incremento $a0 (indirizzo dell'array) per passare al numero/word successivo addi $t1, $t1, 1 #incremento $t1 (elemento dell'array che sto analizzando) per passare al numero/word successivo beq $t1, $a1, fine #termino se ho raggiunto l'ultimo elemento dell'array j ciclo fine: li $v0, 10 # exit syscall