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产生各自的代码块。它会插入条件和无条件分支,以保证能执行正确的代码块。
- 机器代码和它的反汇编表示的特性值注意:
- IA32指令长度从1到15个字节不等。
- 设计指令格式的方式是,从某个给定位置开始,可以将字节唯一地解码成机器指令。
- 反汇编只是基于机器代码文件中的字节序列来确定汇编代码。它不需要访问程序的源代码或汇编代码。反汇编器使用的指令命名规则与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小时
-
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)