Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Landon Johnston W0304105
- # Homework 5
- li $v0, 5 # read in input for array length
- syscall
- move $s0, $v0 # save array length
- sll $a0, $s0, 2
- li $v0, 9 # allocate heap
- syscall
- move $s1, $v0 # save array address
- sll $t0, $s0, 2 # $t0 = size of array
- move $t1, $s1 # $t1 = current element pointer
- add $t2, $t1, $t0 # $t2 = end of array
- fillArrayLoop:
- beq $t1, $t2, exitFillArray
- li $v0, 5
- syscall
- sw $v0, 0($t1)
- addi $t1, $t1, 4
- j fillArrayLoop
- exitFillArray:
- sll $t0, $s0, 2 # $t0 = size of array
- move $t1, $s1 # $t1 = current array pointer (beginning of array)
- add $t2, $t1, $t0 # $t2 = end of array
- arraySort:
- beq $t1, $t2, printArray
- move $t5, $t1 # Temp pointer for while loop
- checkForSwap: # while(j > 0 && A[j] < A[j – 1])
- addi $t6, $t5, -4
- ble $t5, 0, exitCheck
- lw $t3, 0($t5)
- lw $t4, 0($t6)
- bge $t3, $t4, exitCheck
- jal swap
- addi $t5, $t5, -4
- j checkForSwap
- exitCheck:
- addi $t1, $t1, 4
- j arraySort
- swap:
- lw $t7, 0($t5)
- lw $t8, 0($t6)
- sw $t7, 0($t6)
- sw $t8, 0($t5)
- jr $ra
- printArray:
- move $t1, $s1 # $t1 = current array pointer (beginning of array)
- add $t2, $t1, $t0 # $t2 = end of array
- printLoop:
- beq $t1, $t2, exit
- lw $a0, 0($t1) # store current element for printing
- li $v0, 1
- syscall # print current
- li $a0, 32
- li $v0, 11
- syscall # print space
- addi $t1, $t1, 4
- j printLoop
- exit:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement