Loops Mips代码:循环错误

Loops Mips代码:循环错误,loops,mips,Loops,Mips,我第一次在mips上工作 但我的代码似乎陷入了无限的while循环,我无法理解这个问题。当我在Qtspim中运行代码时,不会出现错误,也不会显示任何内容,并且窗口停止响应: 如果没有什么帮助,我们将不胜感激!谢谢 .data arr1:.word 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 .text .globl _start main: add $s2,$zero,$zero add $s3,$zero,

我第一次在mips上工作

但我的代码似乎陷入了无限的while循环,我无法理解这个问题。当我在Qtspim中运行代码时,不会出现错误,也不会显示任何内容,并且窗口停止响应: 如果没有什么帮助,我们将不胜感激!谢谢

.data
arr1:.word 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

.text
.globl _start
main:

add $s2,$zero,$zero
add $s3,$zero,$zero
add $t3,$zero,$zero
add $t4,$zero,$zero
add $s1,$zero,$zero

addi $t5,$zero,31
addi $t6,$zero,-1
addi $s0,$zero,12       # s0 = 12
add $t0,$s0,$zero       #initializing t0 with s0
addi $t2,$zero,2
while:

    slt $t1,$zero,$t0   #initialization (0<t0)
    beq $t1,$zero,while_exit#if(t1==0){exit}

    div $s0,$t2         # s0/2;
    mfhi $s1        # reminder
    mflo $t0        # answer of division    

    #add $t5,$t5,$t6        # sub

    beq $s1,0,else      #if(s1!=0){else}
    addi $s2,$s2,1      #counting no of ones
    addi $v0,$zero,1
    add $a0,$s1,$zero
    syscall
j while
else: 
    addi $s3,$s3,1      #counting no of zeros
    addi $v0,$zero,1
    add $a0,$s1,$zero
    syscall
j while 

while_exit:


addi $v0,$zero,10
syscall
.data
arr1:。单词0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
文本
.globl_启动
主要内容:
添加$s2、$0、$0
添加$s3、$0、$0
加上$t3、$0、$0
加上$t4、$0、$0
加上$s1、$0、$0
addi$t5、$0、31
addi$t6,$0,-1
加上$s0,$0,12#s0=12
添加$t0、$s0、$零#用s0初始化t0
附加$t2、$0、2
而:

slt$t1、$0、$t0#初始化(0您在每次迭代中使用
$s0
作为红利,但是
$s0
永远不会被修改

输出中可能没有显示任何内容,因为您从未完成一行