你好,我在數組函數中爲以下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