看板 Grad-ProbAsk 關於我們 聯絡資訊
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