zoukankan      html  css  js  c++  java
  • 20155308 《信息安全系统设计基础》第五周学习总结

    20155308 《信息安全系统设计基础》第五周学习总结

    教材学习内容总结

    • 机器级代码

    指令集体系结构(ISA):机器级程序的格式和行为,定义了处理器状态、指令的格式以及每条指令对状态的影响

    1. 虚拟地址:使用的存储器地址
    2. 程序计数器(PC):指示下一条指令在存储器中的地址
    3. 寄存器文件:8个命名的位置,分别存储32位的值,可以存储地址或整数数据、
    4. 条件码寄存器:实现控制或数据流中的条件变化
    5. 浮点寄存器
    • 代码示例

    命令行中使用-s得到汇编代码,使用-c会编译并汇编

    反汇编器:带-d命令行标志的程序OBJDUMP

    1. 使用命令
      gcc -Og -o p xxx1.c xxx2.c
      编译
    2. 使用命令
      gcc -Og -S xxx.c
      产生汇编代码
    3. gcc -Og -c xxx.c
      产生目标代码文件,利用反汇编器命令
      objump -d xxx.c
      命令查看机器代码文件内容。
    • 数据传送指令有四个变种:
    1. movb(传送字节)
    2. movw(传送字)
    3. movl(传送双字)
    4. movq(传送四字)

    但是操作的数据大小不同:分别是1、2、4、8字节。

    • 算数和逻辑操作,指令类add由四条加法指令组成:addb、addw、addl、addq,分别是字节加法、字加法、双字加法、四字加法。

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

    • 问题1:练习题3.10.下面的函数是图3-11a中函数的一个变种,其中有些表达式用空格替代,填写C语言中缺失的部分。这个部分在P228页有答案,但是我自己又进行了方法的尝试,也能得到这个结论。


    • 问题2:在做练习题3.29的时候,对这个文件需要进行改进
      先进行源代码的编写


    然后用while循环替代for循环,结果为

    运行之后机器就会卡住了

    然后我发现那个如果用continue就会产生问题。
    所以继续进行第二项


    就可以解决这个问题了。

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

    代码托管

    上周考试错题总结

    • 错题1:编译驱动程序gcc -c 会调用(C)

      A .预处理器

      B .编译器

      C .汇编器

      D .链接器

    • 理解:gcc采用as 作为其汇编器,编译及优化时需要调用汇编器。

      GCC 编译全过程:http://blog.csdn.net/js_xj/article/details/6607362

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

      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

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

    这周学习了程序的机器级表示,首先复习了一些C语言的知识,包括循环等问题,决定自己虽然对C语言应用了很久,但是还是有一些小问题需要自己时刻注意。同时学习了这些机器代码,虽然应用性不是太高,但是读懂汇编代码才能更好的理解和学习计算机。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 2000行 30篇 800小时
    第五周 200/200 2/5 30/85
    • 计划学习时间:30小时
    • 实际学习时间:35小时
    • 改进情况:这周我将前几章的只是进行了复习,并且做了一下第二章的测试,所以 用的时间比较长,但是感觉自己在复习的时候对以前不懂的知识了解的更深了,虽然自己用了很长时间,但是这种有复习的学习方法会对知识掌握的很好。
  • 相关阅读:
    梯度下降法以及实现
    常见的端口号及其用途
    vue build报copy-webpack-plugin] unable to locate异常的解决方法
    vue build错误异常的解决方法
    Websocket-Sharp获取客户端IP地址和端口号
    理解SignalR
    城市经纬度 json
    FFmpeg部署及相关指令操作说明
    C#中Skip和Take的用法
    SQL Server 2008R2 :远程调用失败 的解决方法(全部方法)
  • 原文地址:https://www.cnblogs.com/JIUSHA/p/7712118.html
Copyright © 2011-2022 走看看