Hi, i'm new in this forum and i need help with mips assembly.
I wrote this code but i can't found the error.

#Convert from decimale base to binary one using recursive procedure



    .data
prompt: .asciiz "Insert decimal number: "
output: .asciiz "The number in binary base is: "

     .text
     .globl main

main:

# Read int
    li $v0, 4           
    la $a0, prompt      # $a0 string address
    syscall             
       

    li $v0, 5       
    syscall             # read int and store in $v0

# Calculate  

   move $a0, $v0        # $a0 n
   jal  converti        # call converti(n)
   move $s0, $v0        # $s0 n converted
   
# Print result
    li $v0, 4        
    la $a0, output    # $a0 string address
    syscall        
    move $a0, $s0    # $a0 n converted
    li $v0, 1        
    syscall        # print n converted

# end of programma  
    li $v0, 10         # $v0 exit code
    syscall        

converti:
       addi $sp, $sp,-8          # allocates stack
       sw   $ra, 4($sp)        # save return address
       sw   $a0, 0($sp)        # save n
       li   $v0, 1            
       j    end

converti_main:
    div $a0, $0            # divides n by zero
    mflo $t1            # save quotient
    mfhi $t2            # save rest
    sll $t2,$t2,1                # shift left
    add $t2,$t2,$0              # sum for the rest
    bne  $a0, $zero, converti_main    # if n !=0 go to start of converti_main cicle

    jal  converti        
    lw   $a0, 0($sp)        # restore n in $v1

end:

    lw   $ra, 4($sp)        # restore return address
    addi $sp, $sp, 8        # deallocates stack
    jr   $ra

The problem is that I can't let him print the sequence of 0 and1 but only MSB

Please!

This article has been dead for over six months. Start a new discussion instead.