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

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

教材学习内容总结

学习目标

  • 了解ISA抽象的作用
  • 掌握ISA,并能举一反三学习其他体系结构
  • 了解流水线和实现方式

教材学习

  • Y86-64指令集
指令 功能
halt 终止指令的执行
nop 占位指令,不做任何事
xxmovl(irmovq,rrmovq,mrmovq,rmmovq) 数据传送指令,如rrmov指令,则代表将一个寄存器的值,赋给另外一个寄存器,i-立即数,r-寄存器,m-内存。
opl 操作指令,如加、减法
jxx 条件跳转指令,根据后面的条件进行跳转
cmovxx 条件传送指令,后面的xx代表的是条件,只发生在两个寄存器之间
call与ret 方法的调用和返回指令,一个将返回地址入栈,并跳到目标地址,一个将返回地址入PC,并跳到返回地址
push和pop 入栈和出栈操作
  • Y86异常
  1. Y86有stat状态码,它标志了程序执行的状态
  2. Y86有四种不同的状态码:AOK(正常),HTL(执行halt指令),ADR(非法地址)和INS(非法指令)
  • 常用的存储设备类型:
  1. 时钟寄存器:存储单个位或字,时钟信号控制寄存器加载输入值。
  2. 随机访问存储器:存储多个字,用地址来选择该读或者该写哪个字。

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

  • 问题一:Y86和X86的区别
  • 解决方案:X86比Y86更简单,有时候Y86需要两条指令来达到X86一条指令就可以实现。
  • 比如:对于X86指令中的addl$4,%ecx这样的指令,由于Y86当中的addl指令不包含立即数,所以Y86需要先将立即数存如寄存器,即使用irmovl指令,然后再使用addl来处理加法运算。
  • 补充Y86代码与IA32代码的区别:
  1. Y86可能需要多条指令来执行一条IA32指令所完成的功能。
  2. Y86没有伸缩寻址模式
  • 要实现一个数字系统需要三个主要的组成部分:
  1. 计算对位进行操作的函数的组合逻辑
  2. 存储位的存储器元素
  3. 控制存储器元素更新的时钟信号

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

  • 购建YIS

  • 输入命令```wget http://labfile.oss.aliyuncs.com/courses/413/sim.tar tar -xvf sim.tar``成功会显示已保存

  • 输入指令tar -xvf sim.tar

  • 进入sim文件夹,输入指令sudo apt-get install tk

  • 解析完成后输入sudo ln -s /usr/lib/x86_64-linux-gnu/libtk8.6.so /usr/lib/libtk.so

  • 再输入sudo ln -s /usr/lib/x86_64-linux-gnu/libtcl8.6.so /usr/lib/libtcl.so

  • 进行YIS测试,进行汇编

-问题:使用make指令时遇到这个问题(暂未解决):

代码托管

结对及互评

点评模板:

  • 博客中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 代码中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 其他

本周结对学习情况

其他(感悟、思考等)

本周学习主要是补齐课上及课下的实验,任务量比较大……

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 0/0 1/1 3/3
第二周 100/100 1/2 3/6
第三周 300/400 1/3 4/10
第四周 0/400 2/5 2/12
第五周 25/425 1/6 4/16
第六周 181/606 3/9 10/26
第七周 201/807 2/11 7/33

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

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

  • 计划学习时间:5小时

  • 实际学习时间:7小时

  • 改进情况:

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

参考资料

posted @ 2017-11-05 21:27  lxy1997  阅读(150)  评论(0编辑  收藏  举报