作者kev72806 (想太多oo)
看板Grad-ProbAsk
標題[理工] 計組_計算n!的遞迴組語不太懂
時間Sat Jul 4 18:38:59 2015
http://i.imgur.com/VqG4jEt.jpg
如圖,小弟自行研究後有些疑問,以下條例之:
1、(fact部分)stack 要存返回位址跟n變數的值,為什麼 stack point 要 -8 而不是
+8 呢?堆疊我印象裡資料是由下往上擺吧
2、(L1部分)$V0 在這個程式裡面是全域變數嘛?
3、(L1部分)為什麼要把返回位址跟變數n load word 出來呢?
對於程式呼叫的部分觀念比較弱有請大家多多包涵 ><
先感謝板上高手幫忙解答
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.15.195.222
※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1436006341.A.19A.html
※ 編輯: kev72806 (101.15.195.222), 07/04/2015 18:49:47
→ lemonsheep: lw n出來是要拿去底下做n*fact(n-1)吧 07/04 23:15
→ lemonsheep: ra 就是讓它最後一行可以跳回呼叫它的地方 07/04 23:29
→ tsoahans: 在program的addr. space裡stack是往下長的 heap才是往上 07/05 16:56
推 prosperous: 1. stack是往下長的 07/05 17:21
→ prosperous: 2. v0是return value register 07/05 17:21
→ prosperous: 3. 因為你接下來就要用到了 如果沒有lw出來 ra跟a0裡 07/05 17:23
→ prosperous: 面都會是舊資料 07/05 17:23
推 bb450277: 1. -8後才能放資料回來 07/08 09:38
→ kev72806: 感謝樓上高手相助 >< 小弟已經完全理解 07/08 10:43