[理工] 計組 程序呼叫的問題

作者: sdfg014025xx (隨便就好)   2018-03-25 21:54:49
各位好,最近在複習之前上課教的,但發現這部分忘了...
https://i.imgur.com/7ekzTte.jpg
看不太懂為什麼$sp第一題是-4第二題是-8,我知道$sp是堆疊指標用來儲存callee需要的
暫存器地址
還有對他做sw是什麼意思
上完課沒複習現在忘光了QQ
還懇請各位高手幫忙解惑
感謝
作者: magic83v (R7)   2018-03-25 23:25:00
mem中stack位址從高到低 所以是-4這樣下去sw是要存返回位址 最後拿出返回位址就不會再用到了 所以把sp+回4 再跳回去
作者: b0920075 (Void)   2018-03-26 03:08:00
-4開空間給區域變數
作者: SIGNAL2017 (信號2017)   2018-03-26 12:57:00
我也有疑問@@ 既然如此用4不就好了 為何要用8
作者: magic83v (R7)   2018-03-26 15:10:00
樓上 第二題是遞迴 每次呼叫都要用到參數 所以多存一個位址參數
作者: maple205 (艾瑞克)   2018-03-26 15:12:00
一個variable是4,你要存/取兩個變數就是8從stack取回caller的parameter/argument跟return address,兩個數值,所以+8
作者: SIGNAL2017 (信號2017)   2018-03-26 18:41:00
懂了 感謝

Links booklink

Contact Us: admin [ a t ] ucptt.com