您的位置:首页 > 其它

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

2017-10-22 16:27 579 查看

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

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

参考老师提供的教材内容导读

教材学习内容总结

Intel处理器系列俗称X86,寻址方式经历三代:

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

2 8086的分段模式

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

gcc -S xxx.c
就能看到C语言编译产生的汇编代码

gcc -c hello.c
会编译并汇编该代码

64位机器上想要得到32代码:gcc -m32 -S xxx.c

objdump -d xxx 反汇编



Intel 用术语“字”表示16位数据类型,32位称为双字。

二进制文件可以用od 命令查看,也可以用gdb的x命令查看。

有些输出内容过多,我们可以使用 more或less命令结合管道查看,也可以使用输出重定向来查看

od code.o | more

od code.o > code.txt





了解Linux和Windows的汇编格式有点区别:ATT格式和Intel格式

Intel代码省略了指示大小的后缀。我们看到指令push和mov,而不是pushq和movq

Intel代码省略了寄存器名字前面的‘%’符号,用的是rbx,而不是%rbx。

Intel代码用不同的方式来描述内存中的位置,例如是‘QWORD PTR[rbx]’而不是‘(%rbx)’

在带有多个操作数的指令情况下,列出操作数的顺序相反。

大多数GCC生成的汇编代码指令都有一个字符后缀,表明操作数的大小。数据传送指令有四个变种:movb(传送字节),movw(传送字)、movl(传送的双字)、movq(传送四字)。





寄存器要深入理解,esi edi可以用来操纵数组,esp ebp用来操纵栈帧。

1.8086系统中:8个16位寄存器,从%ax到%bp

2.IA32架构:8个32位寄存器,从%eax到%ebp.

3.x86-64:原来的8个扩展到64位,标号从%rax到%rbp,还新增了8个新寄存器,从%r8到%r15



操作数分为三种类型:立即数、寄存器、存储器

有效地址的计算方式为: Imm(Eb,Ei,s) = Imm + R[Eb] + R[Ei]*s

MOV相当于C语言的赋值”=“,注意ATT格式中的方向, 另外注意不能从内存地址直接MOV到另一个内存地址,要用寄存器中转一下

栈通过push把数据压入栈中,通过pop操作删除数据,它具有一个属性:弹出的值永远是被压入而且仍在栈中的值。栈顶元素的地址是所有栈中元素地址中最低的。栈指针%rsp保存着栈顶元素的地址。



加载有效地址的指令leaq,虽然形式是从内存读数据到寄存器,但实际上他根本没有引用内存,而是将有效地址写入到目的操作数。

call/ret; 函数返回值存在%eax中

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

问题1:能区分MOV,MOVS,MOVZ

问题1解决方案:通过查找资料,在一篇博客中找到了答案

1.MOV相当于C语言的赋值”=“

2.MOVS将作了符号扩展的字节传送到字

3.MOVZ将作了零扩展的字节传送到字

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

问题1:在课本P116页的练习时,出现了如下错误



问题1解决方案:发现是有一个~没有删除,修改后结果为



代码托管



结对及互评

本周结对学习情况

20155326

结对照片

结对学习内容

第三章内容

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

本周学习内容比较多,让我感觉压力比较大。第三章的内容和上学期上的汇编课程相关联比较多,融会贯通的学感觉效果更好。同时仍感觉自己的学习效率不高,需要提升。

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标5000行30篇200小时
第一周5/51/115/15
第二周1/223/38
第三周206/3271/328/66
第四周206/3271/410/77
第五周285/5681/520/97主要学习了汇编及反汇编的相关知识
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。

耗时估计的公式

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

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

计划学习时间:15小时

实际学习时间:20小时

改进情况:本周既需要学习课本第三章内容,内容比较多,增加了学习时间

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

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

参考资料

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

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