我正在读两个整数,第一个必须介于1和7之间。第二个必须介于1和7之间,并且不小于第一个。要检查这些数字,我正在使用一个函数,然后返回1或0,这将在循环中重复输入,直到给出有效输入。
这是我的问题:第一个数字似乎进展顺利,并且循环直到给出有效输入。但是对于我的第二个函数,它几乎相同,但我使用两个参数(第一个数字为$a0
,第二个为$a1
)。每当我在QTSpim上运行程序时,它会在输入第二个整数后立即冻结。任何人都可以帮助我吗?
这是我的代码:
main:
li $v0,5
syscall
move $a0,$v0
jal checkdiv
move $s0,$a0
slt $t0,$zero,$v1
beq $t0,$zero,NE
j main
NE:
li $v0,5
syscall
move $a0,$v0
move $a1,$s0
jal checknum
#These are the two check functions
checkdiv:
addiu $sp,$sp,-8
sw $ra,4($sp)
sw $a0,0($sp)
li $t0,1
slt $v1,$a0,$t0
beq $v1,$t0,D1
li $t0,7
slt $v1,$t0,$a0
D1:
lw $ra,4($sp)
lw $a0,0($sp)
addiu $sp,$sp,8
jr $ra
#Second check function
checknum:
addiu $sp,$sp,-16
sw $ra,8($sp)
sw $a0,4($sp)
sw $a1,0($sp)
slt $v1,$a0,$a1
li $t0,1
beq $v1,$t0,N1
li $t0,7
slt $v1,$t0,$a0
N1: lw $ra,8($sp)
lw $a0,4($sp)
lw $a1,0($sp)
addiu $sp,$sp,16
jr $ra