您的位置:首页 > 其它

2017-2018-1 20155210 《信息安全系统设计基础》第5周学习总结

2017-10-21 13:52 399 查看

2017-2018-1 20155210 《信息安全系统设计基础》第5周学习总结

教材学习内容总结

逆向工程:

阅读编译器将C语言程序编译成一种特别的汇编的语言。了解该汇编语言,通过对汇编语言的理解,来了解创建过程。

x86寻址方式:

DOS时代的平坦模式,不区分用户空间和内核空间,很不安全

8086的分段模式

IA32的带保护模式的平坦模式

机器级编程的两种抽象:

(1)ISA(Instruction set architecture)。ISA简单来说就是指令集体系结构。定义了处理机状态,指令格式以及指令对状态的影响。

(2)机器级使用的存储器地址是虚拟地址。

桢栈结构:

为单个过程分配的那部分栈称为栈帧(stack frame)。寄存器%ebp为帧指针,而寄存器%esp为栈指针。栈帧结构(栈用来传递参数、存储返回信息、保存寄存器,以及本地存储)

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

(一个模板:我看了这一段文字 (引用文字),有这个问题 (提出问题)。 我查了资料,有这些说法(引用说法),根据我的实践,我得到这些经验(描述自己的经验)。 但是我还是不太懂,我的困惑是(说明困惑)。【或者】我反对作者的观点(提出作者的观点,自己的观点,以及理由)。 )

问题1:操作数指示符寻址

问题1解决方案:

立即数:$0xff.

寄存器中的内容:%eax(32位),%ax(16位),%al(4位)。

存储器:根据计算出来的地址访问存储器

学会多种寻址方式寻址。

错误的寻址方式:1. 存储器间接寻址错误使用寄存器:movb $0xf,(%bl).2.二元操作如sub,mov中两个操作数不能同时是存储器位置

问题2:数据传送指令

问题2解决方案:

MOVS和MOVZ指令比较:MOVS符号位扩展,MOVZ零扩展(高位0填充)

pushl数据压栈,popl数据出栈。采用先进后出的原则。栈顶地址小,栈底地址大。IA32栈向低地址方向增长。所以push指令减小栈指针。

4个整数操作指令

addl、subl、andl、xorl

7个跳转指令(jXX)

jmp、jle、jl、je、jne、jge、jg

有6个条件传送指令(cmovXX)

只有当条件码满足所需要的约束时,才会更新目的寄存器的值。

cmovle、cmovl、cmove、cmovne、cmovge、cmovg

...

代码调试中的问题和解决过程

问题1:XXXXXX

问题1解决方案:XXXXXX

问题2:XXXXXX

问题2解决方案:XXXXXX

...

代码托管



(statistics.sh脚本的运行结果截图)

结对及互评

点评模板:

博客中值得学习的或问题:

xxx

xxx

...

代码中值得学习的或问题:

xxx

xxx

...

其他

本周结对学习情况

- [结对同学学号1](博客链接)
- 结对照片
- 结对学习内容
- XXXX
- XXXX
- ...

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

xxx

xxx

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标5000行30篇400小时
第一周200/2002/220/20
第二周300/5002/418/38
第三周500/10003/722/60
第四周300/13002/930/90
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。

耗时估计的公式

:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

计划学习时间:20小时

实际学习时间:20小时

改进情况:

(有空多看看现代软件工程 课件

软件工程师能力自我评价表)

参考资料

《深入理解计算机系统V3》学习指导

...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐