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

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

教材学习内容总结

Y86指令集体系结构

  • 内容:定义一个指令集体系结构,包括定义各种状态元素、指令集和它们的编码、一组编程规范和异常事件处理。

程序员可见状态

  • Y86程序中的每条指令都会读取或修改处理器状态的某些部分。
  • Y86具体包括:8个程序寄存器、3个条件码ZFSFOF、程序计数器(PC)。
  • Y86用虚拟地址引用存储器位置。 程序状态的最后一个部分是状态码Stat,它表明程序执行的总体状态。

Y86指令

  • IA32指令集的一个子集,只包括四字节整数操作。寻址方式比较少,操作也比较少。

  • 指令编码长度从1个字节到6个字节不等,一条指令含有一个单字节的指令指示符,可能含有一个单字节的寄存器指示符,还可能含有一个四字节的常数字。字段fn指明是某个整数操作(OPL)、数据移动条件(cmovXX)或是分支条件(jXX),所有数值都用十六进制表示

  • call指令将返回地址入栈,然后跳到目的地址。ret指令从这样的过程调用中返回。

  • pushl和popl指令实现了入栈和出栈。

  • halt指令停止指令的执行。对于Y86来说,执行halt指令会导致处理器停止,并将状态码设置为HLT。

  • 算术/逻辑单元(ALU)

  • 时序电路

  • 有状态并且在这个状态上进行计算的系统

  • 时钟寄存器&随机访问存储器

  • 时钟寄存器存储单个位或者字。时钟信号控制寄存器加载输入值

  • 随机访问存储器存储多个字,用地址来选择该读入或者该写哪个字

Y86的顺序实现离不开SEQ处理器(顺序处理器)。

处理操作的阶段

  • 取指:从寄存器读取指令字节,地址为程序计数器的值。计算下一条指令地址等于PC中的值加上已取出指令的长度
  • 译码:从寄存器文件中最多读出两个操作数
  • 执行:ALU执行指明的操作、引用的有效地址或者是修改栈指针
  • 访存:将数据写入存储器或者从存储器读出数据
  • 写回:写两个结果到寄存器文件
  • 更新PC:将PC设置成下条指令地址

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

  • 问题1:

  • 问题1解决方案:

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

  • 问题1:git出错,我发现我的脚本统计出现了问题,出现的结果只有69行。

  • 问题1解决方案:我找了一个学长帮我看了一下,最后发现是在有一个“git add”统计的时候,有一个运行文件的文件名取作了“.c”,所以脚本崩溃了。。
    然后我花了很长时间找到了那个文件,把他删除之后就正常了。

代码托管

因为这周的脚本文件发生了崩溃,所以搞好之后代码量全部统计在了一周。

上周考试错题总结

  • 假设下面位串是基于IEEE格式的5位浮点表示,一个符号位,2个阶码位,两个小数位。下面正确的是()
    A .
    3.5的表示是[01011]
    B .
    -1.0的表示[01111]
    C .
    0.5的表示是[00011]
    D .
    1.5的表示是[00110]
    正确答案: A D 你的答案: A C

  • 假设下面位串是基于IEEE格式的5位浮点表示,一个符号位,2个阶码位,两个小数位。下面正确的是()
    A .
    3.5的表示是[01011]
    B .
    -1.0的表示[01111]
    C .
    0.5的表示是[00011]
    D .
    1.5的表示是[00110]
    正确答案: A D 你的答案: A C

  • 我们用一个十六进制的数表示长度w=4的位模式,把数字解释为补码,关于其加法逆元的论述正确的是()
    A .
    0x8的加法逆元是-8
    B .
    0x8的加法逆元是0x8
    C .
    0x8的加法逆元是8
    D .
    0xD的加法逆元是3
    E .
    0xD的加法逆元是0x3
    正确答案: A B D E 你的答案: B E

  • 我们用一个十六进制的数表示长度w=4的位模式,对于数字的无符号加法逆元的位的表示正确的是()
    A .
    0x8的无符号加法逆元是0x8
    B .
    0xD的无符号加法逆元是0xD
    C .
    0xF的无符号加法逆元是0x1
    D .
    0xF的无符号加法逆元是1
    正确答案: A C D 你的答案: A C

  • 0<=x,y<2^w, 则
    A .
    x+y的最大值是2^w
    B .
    x+y的最大值是2^w-1
    C .
    x+y的最大值是2^w-2
    D .
    x+y的最大值是2^(w+1)
    E .
    x+y的最大值是2^(w+1)-1
    F .
    x+y的最大值是2^(w+1)-2
    正确答案: F 你的答案: B

  • 计算机中x<y 和x-y<0总是等价的。
    A .
    错误
    B .
    正确
    C .
    不确定
    正确答案: A 你的答案: B

结对及互评

点评模板:

  • 博客中值得学习的或问题:
    • 5232同学进行了很多实践,看到了她写的博客之后,我也对其中的一些东西产生了兴趣。其中就包括Y86模拟器的安装。
    • 安装指令:
      sudo apt-get install bison flex

本周结对学习情况

- [20155232](http://www.cnblogs.com/lsqsjsj/p/7769029.html)

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

我感觉这学期的学习比上学期要好一些,懂得更多一点,不会完全云里雾里。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 1/1 20/20
第三周 300/500 1/1 18/22
第五周 500/1000 1/1 19/20
第六周 300/1300 1/1 20/21
第七周 300/1300 1/1 19/20

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

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

  • 计划学习时间:20小时

  • 实际学习时间:19小时

  • 改进情况:

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

参考资料

原文地址:https://www.cnblogs.com/xuanyan/p/7787454.html