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


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

    教材学习内容总结

    • X86 寻址方式经历三代:DOS时代的平坦模式,8086的分段模式,IA32的带保护模式的平坦模式
    • Intel代码:
      • 省略了指示大小的后缀,寄存器名字前的“%”符号
      • 用不同的方式来描述存储器中的位置。
      • 在带有多个操作数的指令情况下,列出操作数的顺序相反
    • 64位机器上得到32位代码的方法:gcc -m32 -S xxx.c
    • 有效地址的计算方式: Imm(Eb,Ei,s) = Imm + R[Eb] + R[Ei]*s(第一个是源操作数,第二个是目的操作数)
    • 机器级编程的两种抽象
      • 指令集结构ISA:是机器级程序的格式和行为,定义了处理器状态、指令的格式,以及每条指令对状态的影响。
      • 机器级程序使用的存储器地址是虚拟地址:看上去是一个非常大的字节数组,实际上是将多个硬件存储器和操作系统软件组合起来。
      • 操作数的三种类型:立即数,寄存器,内存引用
      • MOV相当于C语言的赋值”=“,注意ATT格式中的方向,另外注意不能从内存地址直接MOV到另一个内存地址,要用寄存器中转一下。能区分MOV,MOVS,MOVZ,掌握push,pop

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

    • 问题1:pushq和push
    • 问题1解决方案:看了12两篇解读后仍有一些不明白

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

    代码托管

    (statistics.sh脚本的运行结果截图)

    上周考试错题总结

    • 把add.c sub.c mul.c div.c编译成一个共享库libmath.so的命令是:gcc -shared -fpic -o libmath.so add.c sub.c mul.c div.c
    • Linux中创建可执行目标文件需要调用ld
    • dll,so文件的链接是运行在运行时。

    本周结对学习情况

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

    这周的内容和上学期的数据结构有所关联,借此多复习了一些数据结构的知识。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第五周 111/150 2/2 15/20

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

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

    • 计划学习时间:20小时

    • 实际学习时间:15小时

    • 改进情况:多复习了一些汇编和数据结构方面的知识

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

    参考资料

  • 相关阅读:
    JavaScript数组方法--includes、indexOf、lastIndexOf
    JavaScript数组方法--flat、forEach、map
    JavaScript数组方法--filter、find、findIndex
    bootstrap-14
    bootstrap-13
    bootstrap-12
    bootstrap-11
    bootstrap-10
    bootstrap-9
    bootstrap-8
  • 原文地址:https://www.cnblogs.com/xxy9712/p/7710937.html
Copyright © 2020-2023  润新知