2019-2020-1 20175320 《信息安全系统设计基础》第五周学习总结

2019-2020-1 20175320 《信息安全系统设计基础》第五周学习总结

1、教材学习内容总结

本周咱们了解了在计算机系统中程序的机器级表示。经过反汇编器能够将机器码转化为相似汇编代码的格式,而该章节内容的主要介绍了在x86-64中的汇编指令以及汇编指令与c代码之间的转化。虽然一样是汇编,但与咱们上学期学习的8086中的汇编语句有着必定的区别,如下是本章节须要注意的内容:html

  • objdump命令:经过objdump -d 文件名+后缀能够将机器码转化为汇编代码,这是进行分析的重要前提条件。
  • 寄存器的前缀不一样,对应的存储长度不一样。%r是64位、%e是32位、%是16位及如下的寄存器,在进行算术和逻辑操做时,必须经过前缀选择正确长度的寄存器。
  • 操做数有多种寻址方式,咱们须要熟悉各类虚拟地址的寻址方式。
  • x86-64中的数据传送指令以及各类算术和逻辑操做指令的两个操做数的关系相较于8086是相反的,这是与8086最大的区别。
  • 各类操做指令能够经过后缀来指定数据的位数,或者进行数据长度之间的转换,但操做指令规定的长度必定要与寄存器长度相匹配,好比movq、movabsq、movswl等指令。
  • 在使用mov指令时,不能够两个操做数同为存储器,且当即数不能做为目的地址。
  • 在x86-64中,栈操做指令老是以四字做为出以及入栈的单位。
  • 在移位操做中,左移与右移的效果有所区别。shl与sal的效果是同样的,sar是补充零比特,shr是补充符号位。
  • cmp以及test指令的做用与8086中的效果相似,set指令根据条件码的某种组合,将一个字节设置为0或者1。
  • 有些指令分有符号数以及无符号数的状况,经过这些指令能够推出操做数的数据类型。
  • 跳转指令有PC相对以及绝对两种寻址方式,相对寻址方式会将目标指令的地址与紧跟在跳转指令后面那条指令的地址之间的差做为编码,且该差值用补码的方式表示,且跳转指令自己占据两个字节的空间。
  • 经过条件控制以及条件传送语句能够实现条件分支。
  • 使用跳转表能够实现c语言中的switch语句,跳转表中的内容是代码指针,跳转表名称是一个指向代码指针块地址的指针。

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

因为有上学期8086下汇编的基础,对于教材内容的理解并无问题,只是须要注意x86-64汇编语言与8086汇编细节部分的区别,并熟悉x86-64中修改以及添加的概念以及指令。vim

3、代码调试过程

主要是练习将生成的.s汇编文件经过vim进行查看,并经过objdump命令来将.o文件进行反汇编,运行结果如图:

安全

4、上周考试错题总结

问题一:

问题一解析:字符串与字符,ascii码与字符要区分清楚。学习

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

本周内容的重点是如何看懂由机器码反编译而来的基于x86-64的汇编代码,在学习过程当中能够参考8086中的汇编语言,这能够必定程度上减轻咱们的负担,但必定要注意与8086的区别,不能够用旧有的思惟方式看待x86-64中的问题。虽然能够经过之前的内容来方便咱们的理解,但实际上本章的内容仍然十分繁琐,须要咱们有必定的耐心。编码

6、学习进度条

博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 30篇 400小时
第一周 1/1 13/13
第二周 1/2 22/35
第三周 1/3 30/65

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进本身的计划能力。这个工做学习中很重要,也颇有用。 耗时估计的公式 :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。设计

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

参考资料

相关文章
相关标签/搜索