不确定我哪里出错了,在我的程序中我提示用户输入他们想要绘制的线数以创建一个带星星的简单三角形,但是当我输入数字时,无论数字是多少,立即进入无限循环,我必须关闭程序。我似乎无法想象它被困在哪里。这是我的代码。谢谢!
# $a1 holds how many lines
# $a2 is the counter
.text
.globl main
main:
li $v0, 4
la $a0, size1
syscall
li $v0, 5
syscall
move $a1, $v0
ori $a2, $a2, 0
jal starline
nop
li $v0, 10
syscall
.data
size1: .asciiz " How many lines do you want ? "
star: .asciiz "* "
newline: .asciiz " \n "
.text
.globl starline
starline:
loop:
beq $a1, $a2, endsub
nop
li $v0, 4
la $a0, star
syscall
li $v0, 4
la $a0, newline
syscall
addu $a2, $a2, 1
j loop
nop
endsub:
jr $ra
nop
例如,如果用户键入2,则输出应该如下所示
*
**
编辑:当我重新阅读我输入的内容时,我知道为什么它只打印一行一行,但我仍然坚持为什么它是一个无限循环。