栈帧的创建与销毁

本文详细阐述了在调用函数之前如何分配空间,如何将参数放入CPU寄存器并通过堆栈传递,以及call指令如何操作栈帧和销毁自定义函数空间的过程,涉及dbp栈低指针和dsp栈顶指针的概念。
摘要由CSDN通过智能技术生成

调用函数前先创建空间,后堆放元素,紧接着初始化。

传参就是数值进入cpu中的寄存器,由寄存器放到堆砌的元素之上又一次压栈的元素(数值空间头上的那堆,不是自定义函数空间头上那堆,为的是dsp返回到这堆元素以消除自定义函数栈帧空间)里,那堆元素也是形参的空间(代码运行到形参时,形参成为那堆元素),那堆元素头顶紧挨call指令地址。

call调回指令在调用函数里(dsp能回来以销毁自定义数栈帧),如(add(a,b);),为的是和自定义函数里的return语句发生作用。

call指令地址和形参那堆元素挨着的,所以销毁栈帧空间不冲突。

call指令里有dsp移动指令,包括形参空间的自定义函数栈帧空间全部销毁。

dbp 栈低指针(高地址)

dsp栈顶指针(低地址)

pop脱栈  push压栈(元素就是被压栈进去的)

dsp dbp就好比操纵栈区的一双手。

内容仅供参考。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值