为什么MIPS会在第二次打印内存位置

为什么MIPS会在第二次打印内存位置,mips,Mips,[已解决] 我们的任务是在MIPS中编写气泡排序,并打印未排序和排序的数组 我已经编写了以下代码来实现这一点 但当我运行它时,原始数组会像我预期的那样打印 原始阵列 [34, 23, -1, -2, 0] [173496791, 1818324585, 1920090400, 686433, 1919898378] 但它会为排序后的数组打印这个 排序数组 [34, 23, -1, -2, 0] [173496791, 1818324585, 1920090400, 686433, 1919

[已解决] 我们的任务是在
MIPS
中编写气泡排序,并打印未排序和排序的数组

我已经编写了以下代码来实现这一点

但当我运行它时,原始数组会像我预期的那样打印

原始阵列

[34, 23, -1, -2, 0]
[173496791, 1818324585, 1920090400, 686433, 1919898378]
但它会为排序后的数组打印这个

排序数组

[34, 23, -1, -2, 0]
[173496791, 1818324585, 1920090400, 686433, 1919898378]
(Unicode方块不打印)

数组:。字34,23,-1,-2,0,89
长度:。字6
原始:.asciiz“原始数组\n”
已排序:.asciiz“\n已筛选数组\n”
.文本
#main()
主要内容:
洛杉矶2美元,长度

lw$a2,0($a2)#a2我看到这个代码至少有一些奇怪的地方:1)在第二次打印之前,你不会重置
$a1
。2) 您试图在
innerLoop
中使用
$t8
进行多种操作。您应该使用模拟器中的调试功能来检查代码的运行时行为。Michael,我想我正在对a1中的值进行重新排序,因此如果我重置它,它将在排序到位时再次打印原始数组。在那之后,原来的阵列就不存在了。谢谢你,我已经在那里呆了几个小时了,现在我看到逻辑工作得不完美,但是可以解决这个问题。