I'm trying to write a procedure in assembly that sorts an array using bubble-sort algorithm but I'm having a problem which is:
.data
array: .space 40
msg1: .asciiz "Enter 10 elements: \n"
msg2: .asciiz "terminate "
msg3: .asciiz "\n"
.text
.globl main
main:
la $t0, array
li $t1, 0
li $v0, 4
la $a0, msg1
syscall
#loop to take values
input:
li $v0, 5
syscall
sw $v0, ($t0)
addi $t0, $t0,4
addi $t1, $t1,1
blt $t1, 10, input
#re-initializing variables
li $t5 , 0
li $t1 , 0
la $t0, array
loopi:
loopj:
lw $t2, ($t0) #i
lw $t3, 4($t0) #i+1
blt $t3, $t2, swap
addi $t0, $t0,4
addi $t1, $t1,1
blt $t1,10, loopj
swap:
sw $t2, 4($t0) #i=i+1
sw $t3, ($t0)
addi $t1, $t1,1
blt $t1,10, loopj
addi $t0, $t0, 4
addi $t5, $t5, 1
blt $t5, 10, loopi
#re-initializing variables
li $t1 , 0
la $t0, array
print:
lw $v0, ($t0)
move $a0, $v0
li $v0,1
syscall
li $v0 , 4
la $a0, msg3
syscall
addi $t0, $t0,4
addi $t1, $t1,1
blt $t1, 10, print
li $v0 , 10
syscall