numbers: .word 20, 30, 10, 40, 50, 60, 30, 25, 10, 5
length: .word 10
.text
.globl main
main: # $3 is length
# $4 is firstUnsorted
# $5 is testIndex
# $6 is elementToInsert
# $7 address of numbers
# $8 value of numbers[testIndex]
# $9 addr. of numbers[testIndex]
for_init:
li $4, 1
la $7, numbers
lw $3, length
for_compare:
bge $4, $3, end_for
addi $5, $4, -1
mul $9, $4, 4
add $9, $9, $7 # addr. of numbers[firstUnsortedIndex]
lw $6, 0($9)
while:
blt $5, $0, end_while
mul $9, $5, 4
add $9, $9, $7 # addr. of numbers[testIndex]
lw $8, 0($9)
ble $8, $6, end_while
sw $8, 4($9)
addi $5, $5, -1
j while
end_while:
mul $9, $5, 4
add $9, $9, $7 # addr. of numbers[testIndex]
sw $6, 4($9)
addi $4, $4, 1
j for_compare
end_for:
li $v0, 10
syscall