首页 > 解决方案 > 我在 MIPS 中写了一个循环,但由于某种原因它一直在无限运行?

问题描述

我正在为类编写这段代码,但由于某种原因,即使在我达到循环的极限之后,代码也会继续无限运行,希望有人能看到它为什么这样做。msg2 只是一个输入整数的提示,而 numbers 是一个数组,$s0 是数组中元素的数量(例如,如果它是 6,则在终止之前要求用户输入 6 个)。(这只是主类中所有内容的代码片段)

    numbers:     .word 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

     la    $a0, msg1            
     li    $v0, 4              
     syscall
     li    $v0, 5
     syscall
     move  $s0, $v0        
     slt   $t1, $s0, 12
     beq   $t1, 1, fill_loop

    fill_loop:

    li    $t2, 0
    la    $a0, msg2            # $a0 = address of msg1
    li    $v0, 4               # $v0 = 4  --- this is to call print_string()
    syscall
    li    $v0, 5
    syscall
    sw    $v0, numbers($t2)
    addi   $t2, $t2, 1
    beq   $t2, $s0, print_loop
    j     fill_loop

标签: mips

解决方案


推荐阅读