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

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

教材学习内容总结

  • 8086是第一代单芯片、十六位微处理器之一。增加了一个8位外部总线最初的机器型号有32768字节的存储器和两个软驱。
  • 每个后继处理器的设计都是后向兼容的——较早版本上的代码可以在较新的处理器上运行。
  • 指令集体系结构(ISA):机器级程序的指令的格式和行为,它定义了处理器状态、指令的格式,以及每条指令对状态的影响。
  • 整数寄存器(AX,BX,CX,DX):文件包含8个命名的位置,分别存储32个值。存储地址(对于C语言的指针)或整数数据。
  • 条件寄存器(OF,SF,ZF,AF,PF,CF):保存着最近执行的算法或逻辑指令的状态信息。用来实现控制或数据流中的变化,比如用来实现if或while。
  • MOVS和MOVZ指令类都是将一个较小的源数据复制到一个较大的数据位置,高位用符号位扩展(用原值的最高位数值进行填充)或零扩展(高位用0填充)进行填充。
  • if else汇编结构:汇编器为then-statement和else-statement产生各自的代码块。它会插入条件和无条件分支,以保证能执行正确的代码块。
  • 机器代码和它的反汇编表示的特性值注意:
  1. IA32指令长度从1到15个字节不等。
  2. 设计指令格式的方式是,从某个给定位置开始,可以将字节唯一地解码成机器指令。
  3. 反汇编只是基于机器代码文件中的字节序列来确定汇编代码。它不需要访问程序的源代码或汇编代码。反汇编器使用的指令命名规则与GCC生产的汇编代码使用的有些细微的差别。

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

  • 问题1:程序计数器(CS:IP)(在IA32中通常称为PC,用%eip表示)指示将要执行的下一条指令在存储器中的地址。
  • 问题1解决方案:上网查询后理解为:当执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存取到指令寄存器中,此过程称为“取指令”。与此同时,PC中的地址或自动加1或由转移指针给出下一条指令的地址。此后经过分析指令,执行指令。完成第一条指令的执行,而后根据PC取出第二条指令的地址,如此循环,执行每一条指令。

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

代码托管

上周考试错题总结

  • gcc -c *.c 可以得到m.o,swap.o两个模块,哪些符号会出现在swap.o模块的.symtab条目中(ACD)

A
.
buf
B
.
temp
C
.
swap
D
.
buffp0

temp是局部变量,不出现在符号表中。

  • dll,so文件的链接是运行在(运行时)

结对及互评

点评模板:

  • 博客中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 代码中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 其他

本周结对学习情况

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

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

本周学习类似上学期的汇编,对于机器语言的学习,有学过但有很大问题。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 270/1500 1/5 11/1000

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

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

  • 计划学习时间:16小时

  • 实际学习时间:11小时

  • 改进情况:

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

参考资料

posted @ 2017-10-22 22:11  名字最难取  阅读(115)  评论(0编辑  收藏  举报