Продукт рекурсии mips32 - PullRequest
0 голосов
/ 25 апреля 2019

Код не печатает продукт из 2 цифр.Я не уверен, как распечатать результат.Я не уверен на 100%, хранится ли мое возвращаемое значение в указателе стека или нет.

main:


        #prompt 1
        li $v0, 4        # Print the String at Label “Input”
                la $a0, num1
                syscall
                li $v0, 5                      
                syscall
                move $a2, $v0

        #prompt 2
        li $v0, 4     # Print the String at Label “Input”
                la $a0, num2
                syscall
                li $v0, 5      # Read integer from user
                syscall
        move $a1, $v0  # Pass integer to input argument register $a0

        jal multiply       

        add $a0, $v0, $zero
            li  $v0, 1
        syscall


multiply:

            bne $a1, 0, recurse  
            move $v1, $a1
            jr $ra

recurse:

    sub $sp, $sp, 12
    sw $ra, 0($sp)
    sw $a0, 4($sp)
    sw $a1, 8($sp)

    addiu $a1, $a1, -1
    jal multiply

        lw $a1, 4($sp)
        add $v1, $v1, $a1

        lw $ra, 0($sp)
        addi $sp, $sp, 12
        jr $ra 

Ожидаемое значение 3 * 2 равно 6, но выводится 2. 3 * 3 возвращает 3

...