20145306 信息安全系统设计基础 第五周博客总结

20145306《信息安全系统设计基础》第5周学习总结

教材学习中的问题和解决过程

栈和栈帧

栈: 栈底指针和栈顶指针,栈底指针位于高地址端,栈顶指针位于低地址端。 栈是一种特殊的数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。 存储原则是先进后出。 对栈的插入与删除操作中,不需要改变栈底指针。 栈是由高地址向低地址延伸的。 栈帧——则是相对某个函数而言,调用栈就是正在使用的栈空间,由多个嵌套调用函数所使用的栈帧组成。 栈帧表示程序的函数调用记录,而栈帧又是记录在栈上面。(为单个过程分配的那部分栈称为栈帧) 每个函数的每次调用,都有它自己独立的一个栈帧,这个栈帧中维持着所需要的各种信息。因此栈作用就是用来保持栈帧的活动记录(即函数调用)。

关于过程

调用者caller,被调用者callee。 当caller调用callee时,caller的返回地址被压入栈中,形成caller栈帧的末尾。 返回地址:就是当程序从callee返回时应该继续执行的地方(指令的地址),当被调用过程返回时,程序会从此处继续执行。 callee的栈帧从保存的帧指针的值(%ebp)开始,其后即为其保存的寄存器的值,和callee调用其他过程的参数。

 将.c文件编译为汇编语言:

本周代码托管链接

其他(感悟、思考等,可选):

第三章的内容比较多,看得内容比较少。

本周主要是对于汇编的学习,栈针还是没有看懂,有点不太好理解,还需要接下来的不断思索理解。

http://www.cnblogs.com/rocedu/p/5927306.html

原文地址:https://www.cnblogs.com/besti145306/p/5968019.html