[理工] [計組]計算n!的遞迴組語不太懂

作者: kev72806 (Taipei 101)   2015-07-04 18:38:59
http://i.imgur.com/VqG4jEt.jpg
如圖,小弟自行研究後有些疑問,以下條例之:
1、(fact部分)stack 要存返回位址跟n變數的值,為什麼 stack point 要 -8 而不是
+8 呢?堆疊我印象裡資料是由下往上擺吧
2、(L1部分)$V0 在這個程式裡面是全域變數嘛?
3、(L1部分)為什麼要把返回位址跟變數n load word 出來呢?
對於程式呼叫的部分觀念比較弱有請大家多多包涵 ><
先感謝板上高手幫忙解答
作者: lemonsheep (檸檬羊)   2015-07-04 23:15:00
lw n出來是要拿去底下做n*fact(n-1)吧ra 就是讓它最後一行可以跳回呼叫它的地方
作者: tsoahans (ㄎㄎ)   2015-07-05 16:56:00
在program的addr. space裡stack是往下長的 heap才是往上
作者: prosperous   2015-07-05 17:21:00
1. stack是往下長的2. v0是return value register3. 因為你接下來就要用到了 如果沒有lw出來 ra跟a0裡面都會是舊資料
作者: bb450277   2015-07-08 09:38:00
1. -8後才能放資料回來
作者: kev72806 (Taipei 101)   2015-07-08 10:43:00
感謝樓上高手相助 >< 小弟已經完全理解

Links booklink

Contact Us: admin [ a t ] ucptt.com