查看完整版本: 請問這串組合語言哪裡有錯
頁: [1]

b2581167 發表於 2018-3-9 03:49 PM

請問這串組合語言哪裡有錯

這個題目要我找出哪裡有錯,
但是我找不出來,
有誰可以幫幫我。

int f(int a,int b,int c,int d);int foo(int a,int b);
abcd分別為a0a1a2a3。


<div></div>

z1090128 發表於 2018-3-12 11:11 PM

請問這是C或C++的嗎?  恕小弟才疏學淺,這段完全看不懂

bmpss921_58 發表於 2018-3-19 12:01 AM

我只有以前稍微翻過白算盤,所以不太確定,供你參考

程式int f(int a,int b,int c,int d);
告知要回傳int型態的值,而MIPS用$v0及$v1儲存回傳值
但我沒看到有回傳值

那個v0應該是foo的回傳值,而不是f的回傳值
如果是這樣的話第二個foo完全沒用上回傳值,那此foo應該是多餘的?
還是foo有其他用途?我不清楚foo,所以大概這樣想

另外這應該不算是C/C++的範圍吧...

jackyo04 發表於 2018-6-21 09:28 AM

可以告訴我這個是什麼語言嗎?
宣告的東西號想跟C/C++沒有關係,至少我學到現在還沒看過..

ash1326 發表於 2018-8-8 09:22 PM

你先劃分一空間並返還堆疊於ra(a0 a1 a2 a3)
然後將 s0 s1分別設為 a2 a3
然後返還v0內的值到a0之中,v0內的值沒說是啥,這樣就錯啦
再來a1 = s0 + s1,所以a1 = a2 + a3
然後是第二個jal foo,這是多餘的....
最後刷新暫存器,並跳轉回ra

結果
a0 = 錯誤
a1 = a2 + a3
a2 = unknow
a3 = unknow
<br><br><br><br><br><div></div>

ash1326 發表於 2018-8-8 09:23 PM

jackyo04 發表於 2018-6-21 09:28 AM static/image/common/back.gif
可以告訴我這個是什麼語言嗎?
宣告的東西號想跟C/C++沒有關係,至少我學到現在還沒看過.. ...

這是組合語言,現在沒啥人會了
頁: [1]