Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .data
- v: .space 400
- dim: .word
- min: .word
- str1: .asciiz "Ins dim:"
- str2: .asciiz "Ins num:"
- str3: .asciiz "Il minimo e':"
- .text
- #prendo in input la dimensione
- li $v0,4
- la $a0,str1
- syscall
- li $v0,5
- syscall
- addi $s0,$v0,0 #all'interno di $s0 avrò la dim del mio vettore
- ################################
- blez $s0,end #se la dim è <= a 0 allora il programma termina
- addi $t0,$0,0
- la $s1,v
- la $s7,min
- #leggo il primo elemento cosi da prenderlo come min iniziale da confrontare con i successivi
- #elementi i-esimi del vettore
- li $v0,4
- la $a0,str2
- syscall
- li $v0,5
- syscall
- sw $v0,0($s1)
- add $t7,$0,$v0
- addi $t0,$t0,1
- #################################
- cicle:
- slt $t1,$t0,$s0 #se t0<s0 allora t1=1 else t1=0
- beqz $t1,end # se t1=0 fine ciclo
- sll $t1,$t0,2#shift left logic di 2 del valore iesimo
- add $t1,$t1,$s1 #sommo a t1 l'indirizzo base del vettore
- #stampo la stringa
- li $v0,4
- la $a0,str2
- syscall
- #leggo il numero iesimo da inserire nel vettore
- li $v0,5
- syscall
- #ne faccio lo store nell'indirizzo iesimo del vettore calcolato in precedenza
- sw $v0,0($t1)
- addi $t0,$t0,1 #incremento indipendentemente se è il min o meno l'indice iesimo per la successiva iterazione
- slt $t1,$t7,$v0#se t7 è minore di v0 t1 è impostato a 1
- bnez $t1,cicle #se t1 è diverso da 0 allora jump a cicle altrimenti aggiorno il min
- addi $t7,$v0,0
- j cicle
- end:
- sw $t7,0($s7)
- li $v0,4
- la $a0,str3
- syscall
- li $v0,1
- addi $a0,$t7,0
- syscall
- li $v0,10
- syscall
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement