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

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

教材学习内容总结

本周学习第四章:

  • ISA(指令集体系结构)
    一个处理器支持的指令和指令的字节级编码。

movl

指令分成了4个不同的指令:

irmovl、rrmovl、mrmovl、rmmovl
  • 源和目的:源可以是立即数(i)、寄存器(r)、存储器(m)。目的可以是寄存器(r)、存储器(m)

  • 四个整数操作指令,OPq:

addl、subl、andl、xorl
1.只对寄存器数据进行操作
2.会设置3个条件码:ZF、OF、SF
  • 7个跳转指令
jmp、jle、jl、je、jne、jge、jg
  • 6个条件传送指令
cmovle、cmovl、cmove、cmovne、cmovge、cmovg
  • call指令将返回地址入栈,然后跳到目的地址
  • ret指令调用返回
  • pushl和popl指令--入栈和出栈
  • halt指令停止

  • 指令编码

每条指令需要1-10个字节不等,指令的第一个字节表明指令的类型:这个字节分为两个部分:高4位是代码部分、低四位是功能部分。

  • Y86异常
  • Y86程序
  • 逻辑设计和硬件控制语言HCL

1.逻辑门

2.组合电路和HCL布尔表达式

3.多路复用器根据输入控制信号的值,从一组不同的数据信号中选出一个

  • 存储设备都是由同一个时钟控制,两类存储器设备包括:

1.时钟寄存器(寄存器)

2.随机访问储存器(储存器)

  • SEQ硬件结构

1.取指

2.译码

3.执行

4.访存

5.写会

6.更新PC

-SEQ时序

原则:从不回读。

  • SEQ阶段的实现

  • 流水线通用原理
  • 异常处理

指令集体系结构包括三种不同的内部产生的异常:

1.halt指令

2.非法指令和功能码组合的指令

3.取址和数据读写试图访问一个非法地址

  • PIPE各阶段的实现
  • 流水线控制逻辑

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

  • 4问题1

    Y86模拟器的安装器
    1.安装bison和flex词法分析工具,在终端中输入
sudo apt-get install bison flex

在安装y86模拟器时,出现了如下错误:
1065408-20171101193813982-1579134304.png
上网查询解决方案:
在按照提示运行却并没能很好的解决问题。导致这个问题的主要原因是因为/var/lib/dpkg/updates文件下的文件有问题,可能是其他软件安装过程或是其他原因导致的,这里删除掉然后重建即可。

sudo rm /var/lib/dpkg/updates/*

1065408-20171101194115029-2015155805.png

sudo dpkg --configure -a
sudo apt-get update
sudo apt-get upgrade

1065408-20171101200015732-382583029.png

1065408-20171101200037748-1813455176.png
再输入

sudo apt-get install bison flex

开始安装bison和flex:
1065408-20171101200056216-1864385632.png

安装完成后,
下载sim解压。地址

http://csapp.cs.cmu.edu/public/students.html

找到 Chapter 4: Processor Architecture,
1065408-20171101202138451-1381725203.png

点击Source distribution (README)如下图所示,下载后在虚拟机中解压。
1065408-20171101202149357-1259696940.png

  • 问题2
    在解压sim.tar文件时:
    输入解压命令:
tar -xvf sim.tar

出现问题:
1065408-20171101202226732-992956616.png

  • 解决:
    重新下载一次并且记住文件保存路径:
    文件路径在下载文件夹中,使用cd进入下载文件夹,再输入解压命令即可:
    1065408-20171101202449435-1183120824.png

在解压完成后,图形界面需要输入

sudo apt-get install tcl8.5-dev tk8.5-dev tcl8.5 tk8.5

安装TCL/TK。

在解压后的sim文件夹中找到makefile文件,作如下改动:

1065408-20171101212436920-1139218342.png
进行编译
1065408-20171101212446841-1643550096.png

  • 错误:
    1065408-20171101212457685-1102288470.png

  • 解决方法
    再重新编译后还是出现错误,有进行下载但还是有错误,在网上查询后还是未解决。

  • 于是在实验楼上进行:
  • 1065408-20171101221531748-580721674.png
    进入测试代码,教材p252页代码
asuml.ys

,可以通过

make asuml.yo

进行汇编
1065408-20171101221541998-1641706068.png
然后再使用cat命令查看:
1065408-20171101221550138-2016244422.png

1065408-20171101221557263-1914049595.png
asuml.yo就是汇编后的结果。

  • 在做课本p251代码时出现错误:
    1065408-20171101223332201-1760200531.png

  • 未解决-

代码托管

1065408-20171101230044826-2010011511.png

上周考试错题总结

结对及互评

点评模板:

暂无

本周结对学习情况

  • 20155215

    • 结对学习内容
      • 共同学习课本第四章和实验楼内容
      • 分析课本中代码遇到的问题

思考

本次的内容我感觉难度很大,很难理解和记忆,希望老师上课能多进行讲解和分析这章,在进行Y86的安装时,总是遇到层出不穷的问题,要不断的查资料才能解决,最后到编译那一步因为缺少文件,也不知道怎么解决下载也没用,就在实验楼上做了课本上的练习。

学习进度条

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标5000行30篇400小时
第四周12/121/120/20
第五周271/2831/215/15
第6周276/2832/318/18
第7周150/2834/421/23
第8周294/2834/424/27
第9周289/2834/429/23

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

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

  • 计划学习时间:23小时

  • 实际学习时间:29小时

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

参考资料

转载于:https://www.cnblogs.com/lsqsjsj/p/7769029.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值