[理工] 计组 程序呼叫的问题

楼主: 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