2017-2018-1 20155317 《信息安全系统设计基础》第五周学习总结
2017-2018-1 2015317 《信息安全系统设计基础》第五周学习总结
教材学习内容总结
- ISA就是一个处理器支持的指令和指令的字节级编码。
- 理解函数调用栈帧的概念,并能用GDB进行调试: GDB对于栈帧的调试可以分为以下几方面的内容 up n 向上回退n个栈帧(更外层),n默认为1; down n 向下前进n个栈帧(更内层),n默认为1.;up-silently n 与up n相同,但是不打印信息。; down-silently n 与down n相同,但是不打印信息。
- 使用gcc编译代码:b- 字节 1 ;short w- 字 2; int l- 双字 4; long l- 双字 4; long long int - 8 ;char * l- 双字 4; float s- 单精度 4; double l- 双精度 8 ;long double t- 扩展精度 10/1
int exchange(int *xp, int y){ int x = *xp; *xp = y; return x; } //*********汇编代码******/ //1 movl 8(%ebp),%eax Get xp //2 movl 12(%ebp),%edx Get y //3 movl (%eax),%ecx Get x at *xp //4 movl %edx,(%eax) Store y at *xp //5 movl %ecx,%eax Set x as return value
4. 编译过程
gcc -Og -S xx.c可以产生汇编文件
教材学习中的问题和解决过程
- 问题1:idivl 与 divl区别
- 问题1解决方案:在idivl这个指令执行的过程中,其实对被除数进行了符号扩展,类似于cltd指令,或者有时也会将%eax移动到%edx,然后对%edx进行算术右移31位的运算。这两种方式的结果是一样的,都是将%eax符号扩展32位并存储在%edx当中
代码调试中的问题和解决过程
- 问题1:XXXXXX
- 问题1解决方案:XXXXXX
- 问题2:XXXXXX
- 问题2解决方案:XXXXXX
- ...
代码托管
(statistics.sh脚本的运行结果截图)
上周考试错题总结
-
- 11.gcc hello.c产生的a.out属于()
- A .可重定位目标文件
- B .可执行目标文件
- C .共享目标文件
- D .目标模块或目标文件
- 17.链接器的重要性在于可以支持()
- A .静态库
- B .动态库
- C .分离编译
- D .调试
- 11.gcc hello.c产生的a.out属于()
- ...
结对及互评
点评模板:
- 博客中值得学习的或问题:
- xxx
- xxx
- ...
- 代码中值得学习的或问题:
- xxx
- xxx
- ...
- 其他
本周结对学习情况
- 20155301
- 结对照片
- 结对学习内容
- 第三章
- ...
其他(感悟、思考等,可选)
通过这一章的学习,我不仅复习了上学期所学的汇编知识,也对汇编知识有了一个更新的了解。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 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小时
-
改进情况:
(有空多看看现代软件工程 课件 软件工程师能力自我评价表)
参考资料