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