Advertisement
Guest User

insertionsort

a guest
Nov 22nd, 2014
394
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.11 KB | None | 0 0
  1. .data
  2. spacing:.asciiz " "
  3.  
  4. .align 5
  5. array: .asciiz "Joe"
  6. .align 5
  7. .asciiz "Jenny"
  8. .align 5
  9. .asciiz "Jill"
  10. .align 5
  11. .asciiz "John"
  12. .align 5
  13. .asciiz "Jeff"
  14. .align 5
  15. .asciiz "Joyce"
  16. .align 5
  17. .asciiz "Jerry"
  18. .align 5
  19. .asciiz "Janice"
  20. .align 5
  21. .word 0
  22.  
  23. .align 2
  24. ptr_array: .space 32
  25. end_of_ptr:
  26. size: .word 8
  27. i: .word ptr_array
  28. j: .word ptr_array
  29.  
  30. .text
  31. main:
  32. la $t0,ptr_array
  33. la $t1,end_of_ptr
  34. la $t2,array
  35. setptr:
  36. sw $t2,0($t0)
  37. addi $t0,$t0,4
  38. addi $t2,$t2,32
  39. blt $t0,$t1,setptr
  40. jal sort_loop
  41. la $a1,ptr_array
  42. jal print
  43.  
  44. end:
  45. li $v0, 10
  46. syscall
  47.  
  48. print:
  49. set_j:
  50. subi $sp,$sp,16
  51. sw $ra,12($sp)
  52.  
  53. loop_j:
  54. la $t1,end_of_ptr
  55. beq $a1,$t1,end_j
  56. la $a0,($a1)
  57. lw $a0,($a0)
  58. li $v0,4
  59. syscall
  60. la $a0,spacing
  61. li $v0,4
  62. syscall
  63. addi $a1,$a1,4
  64. b loop_j
  65.  
  66. end_j:
  67. lw $ra,12($sp)
  68. addi $sp,$sp,16
  69. jr $ra
  70.  
  71. sort_loop:
  72. set_i:
  73. subi $sp,$sp,16
  74. sw $ra,12($sp)
  75.  
  76. loop_i:
  77.  
  78. outer_loop:
  79. la $t0,i
  80. lw $t0,($t0)
  81. la $t1,end_of_ptr
  82. beq $t0,$t1,end_i
  83. la $t0,i
  84. lw $t0,($t0)
  85. sw $t0,j
  86. la $t0,i
  87. lw $t0,($t0)
  88. addi $t0,$t0,4
  89. sw $t0,i
  90.  
  91. inner_loop:
  92. lw $t0,j
  93. la $t1,ptr_array
  94. ble $t0,$t1,outer_loop
  95. lw $t0,j
  96. subi $t1,$t0,4
  97. lw $t2,($t0)
  98. lw $t3,($t1)
  99. li $t6,0
  100. strcmp:
  101. lb $t4,($t2)
  102. lb $t5,($t3)
  103. blt $t4,$t5,swap
  104. bgt $t4,$t5,outer_loop
  105. addi $t2,$t2,1
  106. addi $t3,$t3,1
  107. addi $t6,$t6,1
  108. bge $t6,9,outer_loop
  109. b strcmp
  110.  
  111. swap:
  112. sub $t2,$t2,$t6
  113. sub $t3,$t3,$t6
  114. sw $t2,($t1)
  115. sw $t3,($t0)
  116. la $t0,j
  117. lw $t0,($t0)
  118. subi $t0,$t0,4
  119. sw $t0,j
  120. b inner_loop
  121.  
  122. end_i:
  123. lw $ra,12($sp)
  124. addi $sp,$sp,16
  125. jr $ra
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement