我可以製作一個方法並在數組上使用它嗎?例如像這樣在java:bubbleSort(a)
,或者它只能跳轉到標籤的東西?如何實現MIPS方法
0
A
回答
1
看一看jal
和jr
,$fp
,$sp
和MIPS調用約定(S)
是的,你就無法擺脫的標籤東西
0
的問題是,你不能以你用高級語言思考的方式思考彙編。這是一個完全不同的世界。
你沒有方法,你沒有循環。有條件的分支和跳躍是你所有的。忘記語言施加的執行控制 - 你已經回到了GOTO爲王的土地。所以就像@deviantfan說的那樣,你將不得不習慣jal
(跳轉和「鏈接」,也就是保存電腦$ra
)和jr $ra
。
而你沒有陣列。你甚至沒有變數,而不像HLL那樣。範圍的想法是完全陌生的。你所擁有的全部是寄存器,屬於誰把東西放進去。和內存位置,可以由任何人寫。如果你想考慮像變量那樣的東西,記住它們都是全局變量。這就是MIPS調用約定@deviantfan提到的地方。如果你寫了一個函數(也就是說,用jal
調用的一段代碼以jr $ra
結尾,那麼要遵循這些約定,所以你不要把垃圾放到你的調用者的寄存器,並且完全取決於你確定你正在寫入的數據在你的意思之內,並且不會覆蓋別人正在使用的內存位置,因爲沒有「字符串」的概念,或者 - 只是一堆可能包含從ASCII任何形式的數據,以浮點數字字節
這就是電腦如何真正工作其他一切的HLL給你只是抽象(又名糖衣)進行。編程更簡單,更可靠。
相關問題
- 1. 以mips實現LRU
- 2. 如何在MIPS中實現NOT操作?
- 3. 排序算法實現在MIPS
- 4. 如何實現自方法
- 5. 如何實現readinto()方法
- 6. 如何實現IDispatch方法?
- 7. 如何實現GestureListener.onFling()方法
- 8. 如何實現containsAll方法
- 9. 如何實現方法isMyDeviceATablet()?
- 10. 如何實現can()方法?
- 11. 如何實現ICollection.CopyTo方法?
- 12. 如何實現onShowCustomView方法?
- 13. 實現方法
- 14. C#如何實現「單身」的方法
- 15. JavaScript核心方法如何實現?
- 16. 如何實現返回Stream的方法?
- 17. 內部如何實現擴展方法
- 18. 如何正確實現onDestroy方法?
- 19. 如何返回實現從方法
- 20. 如何實現Linq OrderBy方法?
- 21. 如何在WPF中實現System.currentTimeMillis()方法?
- 22. 如何查看Type.InvokeMember方法的實現?
- 23. 如何實現從子類方法
- 24. 如何使用futex實現此方法?
- 25. 如何在XStream中實現omitType方法?
- 26. 如何在IBAction中實現NSArray方法?
- 27. 我該如何實現onActivityResult方法
- 28. 如何實現鑽石平方算法?
- 29. 如何實現方法覆蓋接口
- 30. 如何實現UIApplicationDelegate的協議方法?