Mips代码:循环错误(Mips code : loop error)

编程入门 行业动态 更新时间:2024-10-28 17:26:54
Mips代码:循环错误(Mips code : loop error)

我是第一次在mips工作

但我的代码似乎陷入无限循环,我无法理解这个问题。 当我在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

I am working on mips for the 1st time

but my code seems to be stuck in an infinite while loop, I cant understand the problem. when I run my code in Qtspim it gives no errors and displays nothing and the window stops responding: little help would be appreciated! Thanks

.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

最满意答案

在每次迭代中使用$s0作为被除数,但$s0永远不会被修改。

输出中没有任何内容可能会出现,因为您从未完成过一行。

You use $s0 for the dividend in each iteration, but $s0 never gets modified.

Nothing may be appearing in the output because you never finished a line.

更多推荐

本文发布于:2023-08-06 11:49:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1448903.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:错误   代码   Mips   error   loop

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!