Я внес некоторые изменения в код, но он все еще печатает 9-значное число. Не уверен, что здесь происходит. Когда я набираю 2 * 3, он выдает 268501017. Я с трудом выясняю, как получить результат из регистра и распечатать его.
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 $a1, $v0, $zero
li $v0, 1
syscall
li $v0, 10
syscall
multiply:
bne $a1, 0, recurse
move $v0, $a1
jr $ra
recurse:
sub $sp, $sp, 12
sw $ra, 0($sp)
sw $a0, 4($sp)
sw $a1, 8($sp)
addiu $a1, $a1, -1 #product(x, y-1)
jal multiply
lw $a1, 4($sp)
add $v0, $a2, $a1
lw $ra, 0($sp)
addi $sp, $sp, 12
jr $ra