Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. .data
  2.  
  3.  
  4. vettore: .word 5,6, 6, -3
  5. L: .word 4
  6.  
  7. .text
  8.  
  9.  
  10. lw $t0, L #dimensione vettore
  11.  
  12. jal ORDINA
  13.  
  14.  
  15. li $v0, 10
  16. syscall
  17.  
  18. ORDINA:
  19. li $s0, 0 #indice di partenza, viene incrementato riducendo la parte di vettore da ordinare
  20. li $t2, 0 #registro per salvare temporaneamente il valore da spostare e sovrascrivere
  21.  
  22.  
  23. ciclo1:
  24. beq $s0, $t0, fine_ciclo1
  25. sll $s2, $s0, 2
  26. lw $t1, vettore($s2) #salva il primo elemento del vettore ridotto
  27. move $s1, $s0 #aggiorna indice per iterare sugli elementi del vettore ridotto
  28.  
  29.  
  30. ciclo2:
  31. beq $s1, $t0, fine_ciclo2 #se si é giá iterato sull'intero vettore termina il ciclo
  32. sll $s2, $s1, 2
  33. lw $t3, vettore($s2) #carica l'elemento del vettore da ordinare alla posizione attuale
  34.  
  35. bge $t3, $t1, continua
  36. #se il valore attuale è il piu piccolo finora incontrato:
  37. sll $s5, $s0, 2
  38. lw $t2, vettore($s5) #salva l'elemeto in prima posizione della parte di vettore che resta da ordinare
  39. sw $t3, vettore($s5) #sovrascrivi in quella posizione l'elemento piú piccolo
  40. sw $t2, vettore($s2) #sostituisci il valore salvato al posto dell'elemento minore appena spostato (cioè scambia due elementi di posizione nel vettore)
  41. move $t1, $t3 #aggiorna il valore minore finora trovato nel registro
  42.  
  43. continua:
  44. addi $s1, $s1, 1 #incrementa indice del ciclo2
  45. j ciclo2
  46.  
  47.  
  48. fine_ciclo2:
  49. addi $s0, $s0, 1 #incrementa l'indice di partenza del vettore (riduce la parte di vettore da ordinare)
  50. j ciclo1
  51.  
  52. fine_ciclo1:
  53. jr $ra
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement