zoukankan      html  css  js  c++  java
  • 2017-2018-1 20155330 《信息安全系统设计基础》第5周学习总结

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

    教材学习内容总结

    • 使用命令gcc -Og -o p p1.c p2.c编译相关代码(此处以main.cadd.c为例)。

    • 使用命令gcc -Og -S mstore.c产生汇编代码

      再用gcc -Og -c mstore.c产生目标代码文件,利用反汇编器命令objump -d xx.c命令查看机器代码文件内容。

    • movabsq指令能够以任意64位立即数值作为源操作数,并且只能以寄存器作为目的。

    • MOV,MOVZ,MOVS

      • MOV
      指令 效果 描述
      MOV S,D D←S 传送
      movb 传送字节
      movw 传送字
      movl 传送双字
      movq 传送四字
      movabsq I,R R←I 传送绝对的四字
      • MOVZ
      指令 效果 描述
      MOVZ S,R R←零扩展(S) 以零扩展进行传送
      movzbw 将做了零扩展的字节传送到字
      movzbl 将做了零扩展的字节传送到双字
      movzwl 将做了零扩展的字传送到字
      movzbq 将做了零扩展的字节传送到四字
      movzwq 将做了零扩展的字传送到四字
      • MOV
      指令 效果 描述
      MOVS S,R R←符号扩展(S) 传送符号扩展的字节
      movsbw 将做了符号扩展的字节传送到字
      movsbl 将做了符号扩展的字节传送到双字
      movswl 将做了符号扩展的字送到双字
      movsbq 将做了符号扩展的字节传送到四字
      movswq 将做了符号扩展的字传送到四字
      movslq 将做了符号扩展的双字传送到四字
      cltq 把%eax符号扩展到%rax

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

    • 问题1:gcc -Og优化原理是什么?该过程产生了什么?是否能够查看优化过程?

    • 问题1解决方案:

      -Og

      该标识会精心挑选部分与-g选项不冲突的优化选项,当然就能提供合理的优化水平,同时产生较好的可调试信息和对语言标准的遵循程度。

      优化过程同样产生可执行代码文件(例中的p文件),不具体显示优化过程。

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

    代码托管

    上周考试错题总结

    • 错题1:
      针对以上代码:gcc -c *.c 可以得到m.o,swap.o两个模块,哪些符号会出现在swap.o模块的.symtab条目中()
      A. buf
      B. temp
      C. swap
      D. buffp0

    • 理解情况:temp是局部变量,不出现在符号表中。

    • 错题2:main.c 调用了静态库libmath.a中的函数,编译main.c的命令是()

      A.gcc -static main.c ./libmath.a -o main

      B.gcc -static main.c -L. -lmath -o main

      C.gcc -static main.c -L. -llibmath.a -o main

      D.gcc -static main.o ./libmath.a -o main

    • 理解情况:-lxxx用于链接生成的库,而生成的库的文件名必须形如 libxxx.a。

    • 错题3:gcc hello.c产生的a.out属于()
      A.可重定位目标文件

      B.可执行目标文件

      C.共享目标文件

      D.目标模块或目标文件

    • 理解情况:gcc -c生成可重定位目标文件

    • 错题4:无论什么样的操作系统,ISA或者目标文件格式,基本的链接概念是通用的。

      A.正确 B.错误

    结对及互评

    本周结对学习情况

    • 20155321
    • 结对学习内容
      - 第3章 程序的机器级表示
      - 实验一 开发环境的熟悉

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 0/0 1/1 10/10
    第二周 63/63 1/2 8/18
    第三周 31/94 1/3 18/36
    第四周 265/329 1/4 17/53
    第五周 106/435 2/6 18/71

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

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

    • 计划学习时间:15小时

    • 实际学习时间:18小时

    参考资料

  • 相关阅读:
    C++小知识点
    C++类的const成员函数、默认的构造函数、复制形参调用函数
    原码、反码、补码,计算机中负数的表示
    linux学习笔记(一)
    涉及string、char *、char[ ]、逗号表达式 的代码
    软件皮肤 IrisSkin
    DataGridView 闪烁
    C# String StringBuider 解惑
    JTA事务总结
    世界真的存在吗
  • 原文地址:https://www.cnblogs.com/ashin-kl/p/7710037.html
Copyright © 2011-2022 走看看