作者sdfg014025xx (隨便就好)
看板Grad-ProbAsk
標題[理工] 計組 程序呼叫的問題
時間Sun Mar 25 21:54:49 2018
各位好,最近在複習之前上課教的,但發現這部分忘了...
https://i.imgur.com/7ekzTte.jpg
看不太懂為什麼$sp第一題是-4第二題是-8,我知道$sp是堆疊指標用來儲存callee需要的
暫存器地址
還有對他做sw是什麼意思
上完課沒複習現在忘光了QQ
還懇請各位高手幫忙解惑
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 110.50.150.146
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Grad-ProbAsk/M.1521986092.A.224.html
1F:推 magic83v: mem中stack位址從高到低 所以是-4這樣下去03/25 23:25
2F:→ magic83v: sw是要存返回位址 最後拿出返回位址就不會再用到了 所以03/25 23:31
3F:→ magic83v: 把sp+回4 再跳回去03/25 23:31
4F:推 b0920075: -4開空間給區域變數03/26 03:08
5F:推 SIGNAL2017: 我也有疑問@@ 既然如此用4不就好了 為何要用803/26 12:57
6F:→ magic83v: 樓上 第二題是遞迴 每次呼叫都要用到參數 所以多存一個03/26 15:10
7F:→ magic83v: 位址參數03/26 15:10
8F:推 maple205: 一個variable是4,你要存/取兩個變數就是803/26 15:12
9F:推 maple205: 從stack取回caller的parameter/argument跟return addres03/26 15:15
10F:→ maple205: s,兩個數值,所以+803/26 15:15
感謝各位熱心講解
※ 編輯: sdfg014025xx (180.217.162.98), 03/26/2018 18:23:29
11F:推 SIGNAL2017: 懂了 感謝 03/26 18:41