# 20145303 《信息安全系统设计基础》第5周学习总结(2)
20145303 《信息安全系统设计基础》第5周学习总结(2)
教材学习内容总结
过程:
一个过程调用包括将数据和控制从代码的一部分传递到另一部分,需要在进入时为过程的局部变量分配空间,并在退出时释放这些空间。
数据传递、局部变量的分配和释放通过操纵程序栈来实现。
栈帧结构:为单个过程分配的栈叫做栈帧,寄存器%ebp为帧指针,而寄存器指针%esp为栈指针,程序执行时栈指针移动,大多数信息的访问都是相对于帧指针
call指令:返回地址入栈,并跳转到被调用过程的起始处,返回地址是在程序中紧跟在call后面那条指令的地址
ret指令:从栈中弹出地址,并跳转到这个位置
leave指令:使栈做好返回的准备
递归过程:过程被调用时分配局部存储,当返回时释放存储
练习:
部分代码截图:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步