2019-2020-1 20175209 《信息安全系统设计基础》第三周学习总结

2019-2020-1 20175209 《信息安全系统设计基础》第三周学习总结

教材知识点总结

第三章主要讲述了程序机器级表示,通过对第三章的学习,对C语言文件编译时的汇编代码有了相关的了解,大致总结如下:

  • C语言代码的汇编过程,主要学习了gcc -Og -S -mian.c 命令,即汇编代码的生成,以及对可执行文件的反汇编命令odjdump -d main

  • 在上学期我们学习了汇编这门课程,而C语言的汇编代码和之前学习的80x86系统的汇编过程还是有所不同的

    • 关于立即数的加减运算,在汇编语言中会将立即数放置在运算指令的第二个运算数的位置,而C语言的汇编代码会将运算的立即数放在第一个运算数的位置,例如对于同样的运算算式x=x+8,在80x86系统中的格式为ADD AL,8 ,而在C语言中的格式为addb $8,%al;
  • 使用gdb调试代码

教材学习中遇到的问题

  • 问题1:在利用-Og编译书上代码时main.c 时出现了找不到头文件stdio.h 的错误提示,开始认为是自己写的代码出现了问题,自己编译了测试代码后发现仍然存在该问题

  • 解决:百度了相关原因后发现由于虚拟机镜像文件的问题,有些虚拟机在下载gcc时不会下载C语言相关的头文件,需要自行下载,而在学习上一章时因为头文件都是自己编写的因此没有出现该错误。输入gcc apt-get install build-essential 命令下载相应头文件,具体可参考链接,再运行测试代码即可。

  • 对书上部分代码汇编过程的测试

posted @ 2019-10-13 21:09  5209wzh  阅读(142)  评论(0编辑  收藏  举报