.data

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