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