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

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

教材学习内容总结

一. 信息的储存

  • 1.运用gcc -O1 -S code.c得到C编译器产生的代码
  • 2.运用gcc -O1 -c code.c将编译并汇编该代码得到二进制文件code.o
  • 3.运用objdump -d code.o可以实现反汇编
  • 4.以'.'开头的行都是知道汇编器和链接器的命令。
    • 指令集体系结构(ISA):定义了机器级程序的格式和行为。大多说ISA将程序行为描述为好像每条指令都是按顺序执行。
    • 机器级程序使用的内存地址是虚拟地址,内存模型是一个非常大的字节数组。

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

  • 问题1:如何查看一个程序的汇编代码
    问题1解决方案:

gcc -S -o main.s main.c -m32
cat main.s 可以查看汇编代码。

为了读懂汇编代码,要先搞清楚这些寄存器的作用。
lEAX、ECX、EDX、EBX寄存器的作用

EAX 是"累加器"(accumulator), 它是很多加法乘法指令的缺省寄存器。
EBX 是"基地址"(base)寄存器, 在内存寻址时存放基地址。
ECX 是计数器(counter), 是重复(REP)前缀指令和LOOP指令的内定计数器。
EDX 则总是被用来放整数除法产生的余数。
ESI/EDI分别叫做"源/目标索引寄存器"(source/destination index),因为在很多字符串操作指令中, DS:ESI指向源串,而ES:EDI指向目标串.
EBP是"基址指针"(BASE POINTER), 它最经常被用作高级语言函数调用的"框架指针"(frame pointer).

  • 问题2: 如何查看一个程序的反汇编代码
    问题2解决方案:

gcc -S xxx.c -o xxx.s
nblogs.com/blog/1071612/201710/1071612-20171024210717676-547052151.png)

获得反汇编代码!

  • 问题3:操作数的格式

  • 问题4:IA32数据格式:
    Intel用术语“字”表示16位数据类型,因此,称32位数为“双字”,称64位数为“四字”

  • 问题5:寄存器的理解

本周结对学习情况

- [20155324](http://www.cnblogs.com/wang5324/p/7616183.html)
- 结对照片 无

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

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 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

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

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

  • 计划学习时间:XX小时

  • 实际学习时间:XX小时

  • 改进情况:

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

参考资料

posted @ 2017-10-22 23:00  besti5332  阅读(171)  评论(0编辑  收藏  举报