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

看板Grad-ProbAsk作者 (隨便就好)時間7年前 (2018/03/25 21:54), 7年前編輯推噓6(605)
留言11則, 4人參與, 7年前最新討論串1/1
各位好,最近在複習之前上課教的,但發現這部分忘了... 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

03/25 23:25, 7年前 , 1F
mem中stack位址從高到低 所以是-4這樣下去
03/25 23:25, 1F

03/25 23:31, 7年前 , 2F
sw是要存返回位址 最後拿出返回位址就不會再用到了 所以
03/25 23:31, 2F

03/25 23:31, 7年前 , 3F
把sp+回4 再跳回去
03/25 23:31, 3F

03/26 03:08, 7年前 , 4F
-4開空間給區域變數
03/26 03:08, 4F

03/26 12:57, 7年前 , 5F
我也有疑問@@ 既然如此用4不就好了 為何要用8
03/26 12:57, 5F

03/26 15:10, 7年前 , 6F
樓上 第二題是遞迴 每次呼叫都要用到參數 所以多存一個
03/26 15:10, 6F

03/26 15:10, 7年前 , 7F
位址參數
03/26 15:10, 7F

03/26 15:12, 7年前 , 8F
一個variable是4,你要存/取兩個變數就是8
03/26 15:12, 8F

03/26 15:15, 7年前 , 9F
從stack取回caller的parameter/argument跟return addres
03/26 15:15, 9F

03/26 15:15, 7年前 , 10F
s,兩個數值,所以+8
03/26 15:15, 10F
感謝各位熱心講解 ※ 編輯: sdfg014025xx (180.217.162.98), 03/26/2018 18:23:29

03/26 18:41, 7年前 , 11F
懂了 感謝
03/26 18:41, 11F
文章代碼(AID): #1Qjwei8a (Grad-ProbAsk)