所以我已经尝试了相当长的一段时间来调试它,在我完成了这个冒泡排序代码的MIPS编码之后,我似乎不能准确地指出我的逻辑可能存在的问题。请注意,这只是一个代码片段。如果你觉得有些地方不对劲,那是因为我在单独处理程序的每一部分。假设我已经有一个未排序的数组,里面填满了我必须排序的12个数字。 # $s0 is the starting address of the array
编辑: MIPS代码现在可
我试图在MIPS中编写弗洛伊德三角形,由于某些原因,我似乎找不到问题所在,但由于我的QTspim在运行代码时崩溃,因此我猜它被困在无限循环中。我需要帮助才能走出无限循环。这是包含循环和所有内容的代码的一部分: main:
la $a0, prompt #Enter number of rowssyscall
swap(int v[], int k) int temp; v[k+1]= temp;下面是交换函数的通过几个过程,我们了解到不应该更改的值是使用堆栈指针存储的,或者存储在中。但是,在上面的代码中,排序函数的参数v[] ($a0)和n($a1)使用堆栈指针存储在$s0 $s1中,在运行最内部的循环$s0 in $a0之前,数据显示为将$s1的值赋值给$a1。
我目前正在尝试将do - while循环从C转换到MIPS,当涉及到分支测试时,我有点困惑。 我尝试将C语言转换为MIPS的代码如下: do{
} while(x != 0) 在mips中我声明 loop:
# and down here I should be translating while(x !看起来像once x == 0,do while循环停止。