1

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
User_Targaryen
  • 4,125
  • 4
  • 30
  • 51
Omer Saleem
  • 11
  • 1
  • 2
  • 1
    What is the exact problem you are facing? Is the input getting stored correctly? If yes, then is the sorting not happening properly? Show an example – User_Targaryen Oct 26 '16 at 16:24
  • See my answer here: http://stackoverflow.com/questions/33991923/bubble-sorting-using-mips/34015394#34015394 – Craig Estey Oct 27 '16 at 00:28

0 Answers0