Вы должны сохранить остаток до деления, иначе остаток от ввода не будет сохранен. Посмотрите этот код и попытайтесь понять его.
.data
list: .space 128 #create an array for 32 integers
string: .asciiz "Enter a number : "
.text
.globl main
main:
jal converter_dec_bin
# End Program
li $v0, 10
syscall
converter_dec_bin:
addiu $sp,$sp,-8
sw $ra,0($sp)
xor $t1,$t1,$t1
xor $t2,$t2,$t2
addiu $t2,$t2,504 # 126*4
addiu $t1,$t1,1522 # input number
loop:
rem $t3,$t1,2
sw $t3,list($t2)
subiu $t2,$t2,4
divu $t1,$t1,2
bne $t1,0,loop
xor $t4,$t4,$t4
fill_list:
sw $t4,list($t2)
subiu $t2,$t2,4
bne $t2,0,fill_list
xor $t2,$t2,$t2
print_out:
li $v0, 1
lw $t0,list($t2)
move $a0, $t0
syscall
addiu $t2,$t2,4
bne $t2,508,print_out
lw $ra,0($sp)
addiu $sp,$sp,8
jr $ra