# 20145303 《信息安全系统设计基础》第5周学习总结(2)

20145303 《信息安全系统设计基础》第5周学习总结(2)

教材学习内容总结

过程:

一个过程调用包括将数据和控制从代码的一部分传递到另一部分,需要在进入时为过程的局部变量分配空间,并在退出时释放这些空间。
数据传递、局部变量的分配和释放通过操纵程序栈来实现。
栈帧结构:为单个过程分配的栈叫做栈帧,寄存器%ebp为帧指针,而寄存器指针%esp为栈指针,程序执行时栈指针移动,大多数信息的访问都是相对于帧指针
call指令:返回地址入栈,并跳转到被调用过程的起始处,返回地址是在程序中紧跟在call后面那条指令的地址
ret指令:从栈中弹出地址,并跳转到这个位置
leave指令:使栈做好返回的准备
递归过程:过程被调用时分配局部存储,当返回时释放存储

练习:


部分代码截图:




代码链接:

https://git.oschina.net/LJQ5303/week5.git

原文地址:https://www.cnblogs.com/ljq007/p/5968093.html