[理工] [计组]计算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