我的程序有一个递归函数,它以整数作为输入,并打印n,n-1…1,0,0,1。。。n
下面是递归函数:`RDemo:
addi $sp, $sp -4 sw $ra, 0($sp) #print $a0 li $v0, 1 syscall addi $a0, $a0, -1 bgezal $a0, RDemo addi $a0, $a0, 1 li $v0, 1 syscall lw $ra, 0($sp) addi $sp, $sp, 4 jr $ra
`问题是我需要它停在1,而不是0。
例如,如果输入为3,则应输出(3,2,1,1,2,3)而不是(3,3,1,0,0,1,3)
我使用bgezal指令(如果大于或等于0,则分支并链接),因为它最接近我需要的(如果大于等于1,则分支且链接)。
据我所知,只有两个MIPS分支和链接指令。begzal和bltzal(小于0的分支和链接)
有没有一种方法可以在不创建任何其他子程序的情况下完成我想要的任务?