.text
addi $v0, $zero, 5
syscall
add $a0, $v0, $zero
addi $v0, $zero, 5
syscall
add $a1, $v0, $zero #call choose function
jal choose
add $a0, $v0, $zero #print result
addi $v0, $zero, 1
syscall
addi $v0, $zero, 10 #exit program
syscall
选择:
阿迪 $sp, $sp, -16
sw $ra, 0($sp) # 将返回地址保存在栈中
sw $s0, 4($sp) # 将 s0 存入栈中
sw $a0, 8($sp) # 将 n 存入栈中
sw $a1, 12($sp) # 将 k 存入栈
slt $t0, $a0, $a1 # check if n < k
beq $t0, $1, choose_end
beq $a0, $0, choose_one # check if n == 0 or k == 0
beq $a1, $0, choose_one
addi $a0, $a0, -1 # calculate choose(n-1, k-1)
addi $a1, $a1, -1
jal choose
move $s0, $v0
addi $a0, $a0, 1 # calculate choose(n-1, k)
jal choose
add $v0, $s0, $v0 # add val1 and val2
j choose_end
选择一个: li $v0, 1 # 返回 1 j选择结束
选择结束: lw $ra, 0($sp) # 恢复返回地址 lw $s0, 4($sp) # 恢复 s0 addi $sp, $sp, 16 # 从栈中释放空间 jr $ra # 返回调用者
不知道这段代码有什么问题
我输入2和3结果是4