Может кто-нибудь сказать мне, что не так с моим кодом рекурсии ниже.Предполагается, что это рекурсивная функция от десятичной до двоичной функции.Я просто не вижу, что не так.Я новичок в MIPS, поэтому я не до конца понимаю все, но из своего понимания это то, что я получил.Я жестко запрограммировал число, и я должен получить вывод 101000, но он не будет загружать ничего, кроме сообщения.
.data
msg1:.asciiz "Output (40) = "
.text
.globl main
la $a0,msg1 # load string as parameter
li $v0, 4 # load operation "print string"
syscall # request "print string" for msg1
addi $t0, $zero, 40
move $a0, $t0
li $t2, 2
jal d2b
add $a0, $v0, $zero # load the value of $v0 into $a0
li $v0, 1 # load operation "print integer"
syscall # request "print integer"
d2b: li $t1, 0 # t1 = 0
bgt $a0, $t1, skip # if a0 > t1 no
li $v0, 0 # load v0 as 0
jr $ra # print this shit out
skip: subu $sp, $sp, 32 # sp down 32
sw $ra 20($sp) # save $ra
sw $fp, 16($sp) # save $fp
addiu $fp, $sp, 28 # set up $ fp
sw $a0, 0($fp) # save n
divu $a0, $t2 # divide n / 2
mflo $t3 # quota
mfhi $t4 # rem
move $a1, $t4 # rem keep
move $a2, $t3 # quota keep
addi $a1, 10 # adding rem + 10
jal d2b # call recursive —> d2b(n/2)
lw $a0, 0($fp) # restore n
multu $v0, $a2 # rem+10 *d2b(n/2)
lw $ra, 20($sp) # load $ra
lw $fp, 16($sp) # load $fp
addiu $sp, $sp, 32 # pop stack
jr $ra # return