Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .data
- ARRAY: .word 43, 26, 34, 28, 46, 38, 40, 20, 11, 18, 24, 44, 15, 5, 36, 1, 37, 14, 6, 33, 8, 4
- .text
- MAIN: la $a0, ARRAY # a0: Array
- li $a1, 22 # a1: length of array
- sll $t0, $a1, 2 # t0: length in bytes
- LOOP: move $t2, $t1 # j = i
- add $t1, $t1, 4 # i = i + 1
- bge $t1, $t0, DONE # if i = size, done
- add $t4, $t1, $a0 # t4 = ARRAY + i
- lw $t6, 0($t4) # t6 = *ARRAY[i]
- SWAPS: blt $t2, -4, SWX # if j < -1 goto SWX
- add $t4, $a0, $t2 # t4 = ARRAY + j
- lw $t7, 0($t4) # t7 = *ARRAY[j]
- ble $t7, $t6, SWX # if ARRAY[j] <= x goto SWX
- sw $t7, 4($t4) # ARRAY[j+1] = ARRAY[j]
- sub $t2, $t2, 4 # j = j - 1
- j SWAPS # Return to loop
- SWX: sw $t6, 4($t4) # ARRAY[j+1] = x
- j LOOP # Return to main loop
- DONE: nop
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement