LordMirai

gud code (lab 3)

Mar 16th, 2023
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.93 KB | None | 0 0
  1. .data
  2.  
  3. mesajVectorulSortatEste: .asciiz "Vectorul sortat este: "
  4.  
  5. sizeString: .asciiz "Introduceti numarul de elemente: "
  6. startString: .asciiz "Introduceti numar: "
  7. .align 2
  8. vector: .space 100
  9.  
  10. .text
  11. la $t1, vector # vector
  12. li $t8, 0 # inserted items
  13. puts sizeString
  14. geti $a1
  15. move $t0, $a1 # $t0 = $a1 (size of vector)
  16. putc '\n'
  17. read:
  18. puts startString
  19. geti $a1
  20. putc '\n'
  21.  
  22. sw $a1, ($t1) # vector[i] = a1
  23. addi $t1, $t1, 4 # vector index += 4
  24. addi $t8, $t8, 1 # inserted items += 1
  25. bne $t8, $t0, read # daca inserted items != a1 => read
  26.  
  27. putc '\n'
  28. puti $a1
  29. putc '\n'
  30.  
  31. la $t0, vector
  32. move $a1, $t8 # n = 10
  33.  
  34. jal BubbleSort
  35.  
  36. puts mesajVectorulSortatEste
  37.  
  38. la $t0, vector
  39.  
  40. afiseazaNumar:
  41. lw $a0, ($t0)
  42. puti $a0
  43. putc ', '
  44. addi $t0, $t0, 4
  45. addi $a1, $a1, -1
  46. bgtz $a1, afiseazaNumar
  47.  
  48. sfarsit_program:
  49. done
  50.  
  51. # primeste in $a1 pe n
  52. #
  53. # for(k=1;k<=n-1 ; k++)
  54. # {
  55. # inForDupaK:
  56. # for(i=0;i<n-1 ; i++)
  57. # {
  58. # inForDupaI:
  59. # if(a[i] > a[i+1])
  60. # {
  61. # swap(a[i], a[i+1]), #, swap(a[i],a[i+1])#,swap(a[i],a[i+1])#,swap(a[i],a[i+1])#,swap(a[i],a[i+1])#,swap(a[i],a[i+1])#,swap(a[i],a[i+1])#,swap(a[i],a[i+1])#,swap(a[i],a[i+1])#,swap(a[i],a[i+1])#,swap(a[i],a[i+1])# swap(a[i], a[i+1]);
  62. # }
  63. # }
  64. # }
  65. BubbleSort:
  66.  
  67. li $t1, 1 # k = 1
  68. move $t2, $a1 # $t2 = n
  69.  
  70. forDupaK:
  71. li $t3, 0 # i = 0
  72. move $t4, $a1
  73. addi $t4, $t4, -1 # $t4 = n - 1
  74. la $t0, vector
  75.  
  76. forDupaI:
  77. lw $t5, ($t0) # $t5 = a[i]
  78. lw $t6, 4($t0) # $t6 = a[i+1]
  79. sgt $t7, $t5, $t6 # a[i] > a[i+1]
  80. beqz $t7, continua
  81.  
  82. swap:
  83. sw $t6, ($t0)
  84. sw $t5, 4($t0)
  85.  
  86. continua:
  87. addi $t3, $t3, 1 # i++
  88. addi $t0, $t0, 4 # vector += 4
  89. slt $t7, $t3, $t4 # daca i < n - 1
  90. bnez $t7, forDupaI
  91.  
  92. addi $t1, $t1, 1 # k++
  93. slt $t7, $t1, $t2 # daca k < n
  94. bnez $t7, forDupaK
  95.  
  96. jr $ra
  97.  
Advertisement
Add Comment
Please, Sign In to add comment