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

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

教材学习内容总结

3.1 历史观点

  • Intel处理器系列俗称x86,经历了长期的不断发展的过程。

3.2 程序编码

  • 两种抽象:由指令集体系结构或指令集架构来定义机器级程序的格式和行为;机器级程序实用的内存地址是虚拟地址,提供的内存模型看上去是一个非常大的字节数组。
  • 反汇编:带-d的OBJDUMPk可以充当这个角色。

3.3 数据格式

3.4 访问信息

  • 数据传送指令有三种:movb(传送字节)、movw(传送字)和movl(传送双字)。

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

  • 整数操作指令
    addl、subl、andl、xorl

  • 跳转指令jmp、jle、jl、je、jne、jge、jg

  • 条件传送指令
    只有当条件码满足所需要的约束时,才会更新目的寄存器的值。
    cmovle、cmovl、cmove、cmovne、cmovge、cmovg

3.5 算术和逻辑操作

  • 加载有效地址 leaq

3.6 控制

  • 常用条件码:CF:进位标志 ZF:零标志 SF:符号标志 OF:溢出标志

3.7过程

  • call指令:后接被调用过程的起始的指令地址。效果是将返回地址入栈,并跳转到被调用过程的起始处。
  • ret指令:从栈中弹出地址,并跳转到这个位置。

3.8数组分配和访问

3.9异质的数据结构

3.10在机器级程序中将控制与数据结合起来

3.11浮点代码

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

  • 问题1:MOVS和MOVZ指令区别?
  • 问题1解决方案:实际上没有MOVS这条指令,只有MOVSB、MOVSW、MOVSD等,串操作需要明确数据类型,B表示BYTE,W表示WORD,D表示DWORD。MOVS符号位扩展,MOVZ零扩展(高位0填充)

20155204

本周结对学习情况

- [20155203](http://www.cnblogs.com/xhwh/p/7711946.html)
- 结对学习内容
    实验内容、实验报告、mybash、一起读书。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 22/60
第四周 300/1300 2/9 30/90
第五周 200/1500 2/11 10/100

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

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

  • 计划学习时间:10小时

  • 实际学习时间:10小时

  • 改进情况:

(有空多看看现代软件工程 课件
软件工程师能力自我评价表
)

参考资料

posted @ 2017-10-22 22:50  20155204王昊  阅读(138)  评论(0编辑  收藏  举报