您的位置:首页 > 其它

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/501/15/5
第二周100/1001/25/10
第三周100/2001/35/15
第四周100/3001/45/20
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐