2017-2018-1 20155323 《信息安全系统设计基础》第5周学习总结
2017-10-22 21:56
363 查看
2017-2018-1 20155323 《信息安全系统设计基础》第5周学习总结
教材学习内容总结
机器级代码
对于机器级编程来说,两种抽象很重要:
1.机器级程序的格式和行为,定义为指令集体系结构。
2.机器级程序使用的存储器地址是虚拟地址。
X86的寻址方式经历过三代:
1.DOS时代的平坦模式,不区分用户空间和内核空间,很不安全
2.8086的分段模式
3.IA32的带保护模式的平坦模式
几个处理器:
程序计数器(CS:IP)
整数寄存器(AX,BX,CX,DX)
条件码寄存器(OF,SF,ZF,AF,PF,CF)
浮点寄存器
一条机器指令只执行一个非常基本的操作。
过程
过程是软件中一种很重要的抽象。它提供了一种封装代码的方式,用一组指定的参数和一个可选的返回值实现了功能。然后可以在程序中不同的地方调用这个函数。
过程的形式多种多样:函数,方法,子例程,处理函数等。
过程调用:
首先是进入,为过程的局部变量分配空间
接着将数据(以过程参数和返回值的形式)和控制从代码的一部分传递到另一部分。
最后退出,释放这些空间。
本质上栈帧还是栈。
两个指针
最顶端的栈帧以两个指针界定:
寄存器%ebp-帧指针
寄存器%esp-栈指针
栈指针可移动,所以信息访问多相对于帧指针。
转移控制有以下几种指令
call(过程调用)
ret(从过程调用中返回)
leave(这个指令可以使栈做好返回的准备)
call指令将控制转移到一个函数的起始,而ret指令返回到这次调用后面的那条指令。
程序寄存器组是唯一能被所有过程共享的资源。
保存一个值以待以后运算可用的时候,有两种选择:
1.由调用者保存。在调用之前就压进栈。
2.由被调用者保存,在刚被调用的时候就压进栈,并在返回之前恢复。
教材学习中的问题和解决过程
问题1:不清楚栈帧和栈的区别解答:其实栈帧的本质还是栈。
代码托管
结对及互评
本周结对学习情况
20155314刘子健- 结对学习内容
第三章
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 50/50 | 1/1 | 5/5 | |
第二周 | 100/100 | 1/2 | 5/10 | |
第三周 | 100/200 | 1/3 | 5/15 | |
第四周 | 100/300 | 1/4 | 5/20 |
相关文章推荐
- 2017-2018-1 20155223 《信息安全系统设计基础》第5周学习总结
- 2017-2018-1 20155338 《信息安全系统设计基础》第5周学习总结
- 2017-2018-1 20155301 《信息安全系统设计基础》第5周学习总结
- 2017-2018-1 20155305 《信息安全系统设计基础》第5周学习总结
- 2017-2018-1 20155215 《信息安全系统设计基础》第5周学习总结
- 2017-2018-1 20155218 《信息安全系统设计基础》第5周学习总结
- 2017-2018-1 20155231 《信息安全系统设计基础》第5周学习总结
- 2017-2018-1 20155314 《信息安全系统设计基础》第5周学习总结
- 2017-2018-1 20155222 《信息安全系统设计基础》第5周学习总结
- 2017-2018-1 20155323 《信息安全系统设计基础》第1周学习总结
- 2017-2018-1 20155211 《信息安全系统设计基础》第5周学习总结
- 2017-2018-1 20155323 《信息安全系统设计基础》第4周学习总结
- 2017-2018-1 20155315 《信息安全系统设计基础》第5周学习总结
- 2017-2018-1 20155323 《信息安全系统设计基础》第11周学习总结
- 20155236 2017-2018-1 《信息安全系统设计基础》第5周学习总结
- 2017-2018-1 20155323 《信息安全系统设计基础》第6周学习总结
- 2017-2018-1 20155330 《信息安全系统设计基础》第5周学习总结
- 2017-2018-1 20155302 《信息安全系统设计基础》第5周学习总结
- 2017-2018-1 20155323 《信息安全系统设计基础》第9周学习总结
- # 2017-2018-1 20155337《信息安全系统设计基础》第5周学习总结+mybash