你好,我在数组函数中为以下findMin编号得到异常7 [坏数据地址]。数组的长度已经在$ a1中,数组的起始地址是$ a0。在所有的说法和完成之后,我希望在$ v0中拥有min。 我的函数适用于有2个元素的数组,但在使用更大尺寸的数组时会发生异常7错误。我通过添加到地址而不是使用像4中4($ a0)偏移之类的东西来抵消数组。MIPS findmin的数组函数
-1
A
回答
2
这里的关键是add $a0, $a0, $t1
。考虑在具有N
元素的数组的情况下会做什么:在第二次迭代中,您将在第三次迭代2*4
上添加1*4
,依此类推。所以在第三次迭代中,您将尝试从array + 1*4 + 2*4 == array + 3*4
而不是array + 2*4
中读取。在N:th
迭代中,您将尝试从array + 1*4 + 2*4 + ... + (N-1)*4
中读取。
之前的lw
应该被删除。 后可更新地址。
+0
非常感谢!所以,因为我没有回到数组的原始起始地址,我试图访问数组中不存在的地方?如果我每次使用相同的起始地址,我的代码是否正确? – maxsorenson
+0
刚刚改变了添加$ a0,$ a0,$ t1来添加$ t6,$ a0,$ t1来保存数组$ a0的起始地址,它的工作原理!再次感谢。 – maxsorenson
相关问题
- 1. Mips函数数组
- 2. Mips 2d数组函数
- 3. MIPS函数和数组
- 4. Mips函数declarion
- 5. Haskell语法与函数,特别是findMin函数
- 6. MIPS组件 - 数组?
- 7. Mips函数调用
- 8. 从C到MIPS的mips数组?
- 9. MIPS中的函数(过程)
- 10. MIPS和数组的优化
- 11. 递归mips函数的奇数值
- 12. 两个数字的Mips乘法函数
- 13. 转换C++函数MIPS
- 14. MIPS嵌套函数调用
- 15. MIPS检查数组中的元素数
- 16. 组合数学MIPS 32
- 17. MIPS数组迭代符号?
- 18. 循环通过数组mips
- 19. MIPS指令的简单C函数
- 20. 的Mips:使用嵌套函数
- 21. 如何遍历MIPS中的数组?
- 22. 使用MIPS找到数组的总和
- 23. 以mips排序的数组(集合)
- 24. MIPS交换程序/函数问题
- 25. 在MIPS中实现上传函数
- 26. 转换一个C函数MIPS汇编
- 27. MIPS从数据
- 28. 如何在MIPS中更新数组?
- 29. MIPS:数组打印不正确
- 30. 用数组在MIPS中递归
什么行崩溃? –
我相信这是循环标签中的$ t5,0($ a0)。抛弃我的主要原因是,它如何适用于大小为2的数组,但不会更大? – maxsorenson