Advertisement
Guest User

Untitled

a guest
Mar 17th, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .data
  2.  
  3. v: .space 400
  4. dim: .word
  5. min: .word
  6. str1: .asciiz "Ins dim:"
  7. str2: .asciiz "Ins num:"
  8. str3: .asciiz "Il minimo e':"
  9. .text
  10.  
  11. #prendo in input la dimensione
  12. li $v0,4
  13. la $a0,str1
  14. syscall
  15.  
  16. li $v0,5
  17. syscall
  18.  
  19. addi $s0,$v0,0 #all'interno di $s0 avrò la dim del mio vettore
  20.  
  21. ################################
  22.  
  23. blez $s0,end #se la dim è <= a 0 allora il programma termina
  24.  
  25. addi $t0,$0,0
  26.  
  27. la $s1,v
  28. la $s7,min
  29. #leggo il primo elemento cosi da prenderlo come min iniziale da confrontare con i successivi
  30. #elementi i-esimi del vettore
  31. li $v0,4
  32. la $a0,str2
  33. syscall
  34.  
  35. li $v0,5
  36. syscall
  37.  
  38. sw $v0,0($s1)
  39.  
  40. add $t7,$0,$v0
  41.  
  42. addi $t0,$t0,1
  43. #################################
  44. cicle:
  45. slt $t1,$t0,$s0 #se t0<s0 allora t1=1 else t1=0
  46. beqz $t1,end # se t1=0 fine ciclo
  47. sll $t1,$t0,2#shift left logic di 2 del valore iesimo
  48. add $t1,$t1,$s1 #sommo a t1 l'indirizzo base del vettore
  49.  
  50. #stampo la stringa
  51. li $v0,4
  52. la $a0,str2
  53. syscall
  54.  
  55. #leggo il numero iesimo da inserire nel vettore
  56. li $v0,5
  57. syscall
  58.  
  59. #ne faccio lo store nell'indirizzo iesimo del vettore calcolato in precedenza
  60. sw $v0,0($t1)
  61. addi $t0,$t0,1 #incremento indipendentemente se è il min o meno l'indice iesimo per la successiva iterazione
  62.     slt $t1,$t7,$v0#se t7 è minore di v0 t1 è impostato a 1
  63.     bnez $t1,cicle #se t1 è diverso da 0 allora jump a cicle altrimenti aggiorno il min
  64.     addi $t7,$v0,0
  65.     j cicle
  66.  
  67.  
  68.  
  69. end:
  70. sw $t7,0($s7)
  71.  
  72. li $v0,4
  73. la $a0,str3
  74. syscall
  75.  
  76. li $v0,1
  77. addi $a0,$t7,0
  78. syscall
  79.  
  80. li $v0,10
  81. syscall
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement