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

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

    教材学习内容总结

    • X86 寻址方式经历三代:

      DOS时代的平坦模式,不区分用户空间和内核空间,很不安全

      8086的分段模式

      IA32的带保护模式的平坦模式

    • 对于机器级编程来说,有两种抽象尤为重要。一是有指令集体系结构或者指令集架构(ISA)来定义机器级程序的格式和行为,它定义了处理器的状态、指令的格式,以及每条指令对状态的影响。二是机器级程序使用的内存地址是虚拟地址,提供的内存模型看上去是一个非常大的字节数组。

    • 使用-Og会生成符合原始C代码整体结构的机器代码的优化等级。eg:gcc -Og -o p p.c

    • 使用GCC运行编译器,产生一个汇编文件.s。开头的行都是指导汇编器和链接器的命令,可以把 以'.'开始的语句都删除了再看。

    • 输入gcc -Og -c mstore.c,产生.o文件,由于是二进制的,使用od -tx1 查看其内容。

    • 使用带'-d'命令行标志的OBJDUMP可以查看机器代码的内容,称为反汇编器。他只是基于机器代码文件字节序列来确定反汇编代码。

    • 数据传送指令

    • 算数和逻辑操作被分为四组

      加载有效地址,使用leap指令。eg leap 7(%rdx,%rdx,4),%rax 将设置寄存器的%rax的值为x+4x+7=5x+7.

      一元和二元操作

      移位操作

    • 过程是软件中一种重要的抽象。他用一组指定的参数和一个可选的返回值实现了某种功能。形式有:函数、方法、子例程、处理函数等等。

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

    问题一及解决过程:不明白为什么有些命令后面参数带括号有些不带。eg movq (%rdi),%r8 后来分析后觉得应该是地址的意思。

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

    问题一及解决过程:在运行P116页的代码时出错,尝试了很多遍后才知道得一步一步的来,先输入P114的代码,而且不能将两个代码放在一起。并且自己添加头文件。(忘了截图啦)

    代码托管

    结对及互评

    20155326罗佳琪

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

    这周的学习内容基本上和汇编有关,重温了一遍汇编的知识,结合书上讲解,可以理解较简单的汇编码,要读懂更深难度的还要多加练习。加油。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 2000行 15篇 400小时
    第一周 0/0 1/1 10/20
    第二周 57/100 1/1 20/30
    第三周 100/100 1/1 30/30
    第四周 233/200 1/1 20/20
    第五周 267/200 1/1 20/20

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

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

    • 计划学习时间:20小时

    • 实际学习时间:20小时

    • 改进情况:

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

    参考资料

  • 相关阅读:
    Spring框架——JdbcTemplate(Spring对Jdbc的封装)
    Spring框架——批处理(batch)和事务(Transaction)
    Spring框架——AOP(面向切面编程)详解
    Spring框架——关于IOC容器和注解的36个小实验
    学习新技术的 10 个建议
    解决 PHP Fatal error: Call-time pass-by-reference has been removed
    mysql下float类型使用一些误差详解
    windows 如何查看端口占用情况
    插件机制
    .net/c#常用框架/中间件简介
  • 原文地址:https://www.cnblogs.com/lmc1998/p/7709305.html
Copyright © 2011-2022 走看看