Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2014
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. # Landon Johnston W0304105
  2. # Homework 5
  3.  
  4.  
  5.  
  6. li $v0, 5 # read in input for array length
  7. syscall
  8.  
  9. move $s0, $v0 # save array length
  10.  
  11. sll $a0, $s0, 2
  12. li $v0, 9 # allocate heap
  13. syscall
  14.  
  15. move $s1, $v0 # save array address
  16.  
  17. sll $t0, $s0, 2 # $t0 = size of array
  18. move $t1, $s1 # $t1 = current element pointer
  19. add $t2, $t1, $t0 # $t2 = end of array
  20. fillArrayLoop:
  21. beq $t1, $t2, exitFillArray
  22. li $v0, 5
  23. syscall
  24. sw $v0, 0($t1)
  25. addi $t1, $t1, 4
  26. j fillArrayLoop
  27. exitFillArray:
  28.  
  29.  
  30. sll $t0, $s0, 2 # $t0 = size of array
  31. move $t1, $s1 # $t1 = current array pointer (beginning of array)
  32. add $t2, $t1, $t0 # $t2 = end of array
  33. arraySort:
  34. beq $t1, $t2, printArray
  35. move $t5, $t1 # Temp pointer for while loop
  36. checkForSwap: # while(j > 0 && A[j] < A[j – 1])
  37. addi $t6, $t5, -4
  38. ble $t5, 0, exitCheck
  39. lw $t3, 0($t5)
  40. lw $t4, 0($t6)
  41. bge $t3, $t4, exitCheck
  42. jal swap
  43. addi $t5, $t5, -4
  44. j checkForSwap
  45. exitCheck:
  46. addi $t1, $t1, 4
  47. j arraySort
  48.  
  49. swap:
  50. lw $t7, 0($t5)
  51. lw $t8, 0($t6)
  52. sw $t7, 0($t6)
  53. sw $t8, 0($t5)
  54. jr $ra
  55.  
  56. printArray:
  57. move $t1, $s1 # $t1 = current array pointer (beginning of array)
  58. add $t2, $t1, $t0 # $t2 = end of array
  59. printLoop:
  60. beq $t1, $t2, exit
  61. lw $a0, 0($t1) # store current element for printing
  62. li $v0, 1
  63. syscall # print current
  64. li $a0, 32
  65. li $v0, 11
  66. syscall # print space
  67. addi $t1, $t1, 4
  68. j printLoop
  69. exit:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement