该代码未打印两个数字的乘积。我不确定如何打印结果。我不确定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