20145240 《信息安全系统设计基础》第六周同学问题总结

学习目标

  • 了解ISA抽象的作用

  • 掌握ISA,并能举一反三学习其他体系结构

  • 了解流水线和实现方式

    学习资源

  • 教材:第四章《处理器体系结构》,详细学习指导见教材导读与每周考试重点。:重点是4.1节,4.2节,4.3节。

  • 实验楼课程资料:实验五,课程邀请码:W7FQKW4Y

  • 学习任务

1、阅读教材,完成课后练习(书中有参考答案),考核:练习题把数据变换一下

2、教材中相关代码运行、思考一下,读代码的学习方法见「代码驱动的程序设计学习」。

3、教材4.1-4.3中练习,重点:4.1 4.2 4.5 4.6 4.8 4.10 4.11 4.12 4.16 4.17 4.19 4.21 4.24

同学们遇到的问题及解决方法

  • 本周同学问题比较集中与Y86处理器的安装,可以参考20145218张晓涵、20145307陈俊达同学的博客,其中详细讲解了安装的过程及注意事项。

  • 20145325张梓靖《信息安全系统设计基础》第6周学习总结

问题: 对于Y86指令集中的nop,具体作用到底是什么,只需对PC加1是什么含义,为什么说“标号为'icode'和‘ifun’的控制逻辑块计算指令和功能码,等于从存储器读出的值,或者当指令地址不合法时(由信号imem error指明),这些值对应于nop指令”?

解决方案: nop作用:这是一个占位指令,他不做任何事,后续为了实现流水线,它有一定的作用。

  • 20145304 刘钦令《信息安全系统设计基础》第6周学习总结

问题: 打开虚拟机时提示挂载失败,但安装YIS的安装包在Windows系统上,需使用共享文件夹中的安装包。

解决方案: 解决过程:重新手动挂载,再执行安装过程。

  • 20145214 张宁《信息安全系统设计基础》第6周学习总结

问题1:练习题4.17,写出SEQ实现中信号need_valC的HCL代码

解决方案:bool need_valC = icode in { IIRMOVL, IRMMOVL, IMRMOVL, IJXX, ICALL };

问题2:课本P263的need_regids的HCL描述,无法理解这些HCL描述怎样得来的

解决方案:need_regids说的是这个指令是否包括一个寄存器指示符字节,所以结合课本P232的图4-2,need_regids的HCL代码应该包括所有含寄存器rA和rB的{IRRMOVL,IOPL,IPUSHL,IPOPL,IIRMOVL,IRMMOVL,IMRMOVL}need_valC的HCL代码同理。

  • 20145215卢肖明《信息安全系统设计基础》第6周学习总结

问题:输入make asuml.yo指令出现错误,make:'asuml.yo' is up to date

解决方案:Makefile没有问题,主要原因是第一次已经make过一遍了,第二次如果没有修改过直接编译就会出现错误,可以先make clean一下,再make一个工程就没有问题了。

  • 20145308 刘昊阳《信息安全系统设计基础》第6周学习总结

问题:为什么popl指令执行过程中在译码阶段要读两次栈指针

解决方案:为了保证和pushl指令执行过程的一致性,先完成存储器的操作再更新栈指针,执行是在访存和写回阶段之前,所以执行阶段先给栈指针加4,但是要用没加过4的原始值作为存储器操作地址。写回时也要用加4的栈指针更新地址,也要用没加4的值作为存储器读地址,所以译码时要访问两次栈指针。

  • 20145335郝昊《信息安全系统设计基础》第6周学习总结

问题1:练习题4.1中的两个问题,练习题中阐述了。.ops 0x100 表明代码的起始地址是0x100,那为什么第一个指令 irmovl $15 , %ebx 不是从0xF+0x100呢?

解决方案:一个是%ebx的值,另一个则是地址的值,二者不一样,二者也是不会相互影响的。所以答案直接就是0xF ,最终答案应该是30F30F000000

问题2:之后针对于练习4.1每一行代码的地址遇到了问题。为什么执行完代码irmovl $15 , %ebx后地址变为0x106?

解决方案:通过分析书上的P234页的例子就可以知道,需要4字节常数,每两个数算作一字节。加上imovl命令的编码30F30F000000所以一共为6位,地址变化为0x106,之后的也一样,指令编码和4字节常数,不同的Y86指令又有不同的要求,理解图4-2、4-3的表就可以理解了。

  • 20145223杨梦云《信息安全系统设计基础》第6周学习总结

问题:在官方网站下可以看到chapter4,可以看到source distribution项目,下载所需要的源文件。用tar xf sim.tar命令进行解压出现无法打开的错误。

解决方案:1、用cd ~和ls查看,发现Home目录当中并没有下载的sim.tar文件 2、打开firefox下载文件所在的文件夹,找到sim.tar并把它拖入到主文件夹Home中3、再次用cd ~和ls便可以看见目录中已经有了下载的sim.tar,这时候就可以用tar xf sim.tar命令对其进行解压了。

  • 20145330孙文馨《信息安全系统设计基础》第6周学习总结

问题:4.12题目:valM=M4[valA],不清楚这一步具体如何实现

解决方案:由上一步知:valA=124,则M4[124]查看指令序列%esp=124找到这行指令:pushl %edx,知%edx=9

  • 20145312袁心《信息安全系统设计基础》第6周学习总结

问题:4.6题目:指令subl有什么用处?

解决方案:在这个测试里,subl指令将%esp的起始值与压入栈中的值进行了比较。这个减法的结果为0,表明压入的是%esp的旧值。

  • 20145207李祉昂《信息安全系统设计基础》第6周学习总结

问题:虚拟机莫名其妙,不但什么都下不了,而且下载之后make命令显示‘asuml.yo’ is up to date.

解决方案:先make clean一下,再make一个工程就没有问题了

  • 20145238荆玉茗《信息安全系统设计基础》第6周学习总结

问题:安装Y86模拟器时,无法编译.yo文件

解决方案:使用修理ubuntupackage broken命令,sudo apt-get --fix-broken install

  • 20145331魏澍琛《信息安全系统设计基础》第6周学习总结

问题:p238Y86代码为什么不能直接用addl $4,%ecx代替11、12行代码内容?

解决方案:对于整数操作命令,它们只能对寄存器数据进行操作,立即数必须先放到一个寄存器里。

  • 20145219宋歌《信息安全系统设计基础》第6周学习总结

问题:实验楼实验中在“构建YIS环境”时,输入了sudo ln -s /usr/lib/x86_64-linux-gnu/libtk8.6.so /usr/lib/libtk.so命令。第一次输入时无提示,第二次输入时提示ln:无法创建符号链接"/usr/lib/libtk.so":文件已存在,为什么要输入两遍?只输一遍可以吗?

解决方案:sudo ln -s 源文件 目标文件命令功能为:为某一个文件或目录在另外一个位置建立一个同步的链接,类似Windows下的超级链接。建立符号链接时,如果[链接名]已经存在但不是目录,将不做链接。[链接名]可以是任何一个文件名(可包含路径),也可以是一个目录,并且允许它与“目标”不在同一个文件系统中。如果[链接名]是一个已经存在的目录,系统将在该目录下建立一个或多个与“目标”同名的文件,此新建的文件实际上是指向原“目标”的符号链接文件。

  • 20145212罗天晨《信息安全系统设计基础》第6周学习总结

问题:输入make指令后,直接离开目录

解决方案:应进入Y86-code目录

  • 20145221高其《信息安全系统设计基础》第6周学习总结

问题:在安装sudo apt-get install bison flex时出现了问题E:无法获得锁 /var/lib/dpkg/lock - open(11:资源暂时不可用)``E:无法锁定管理目录(/var/lib/dpkg/),是否有其它进程正在占用它

解决方案1:终端输入ps -aux,列出进程,找到含有apt-get的进程,直接sudo kill PID解决

#:ps -aux (列出进程,形式如)
root 5765 0.0 1.0 18204 15504 ? SN 04:02 0:00 apt-get -qq -d
找到最后一列以apt-get 开头的进程
#:sudo kill -9 该进程的PID

解决方案2:强制解锁

#:sudo rm /var/cache/apt/archives/lock
#:sudo rm /var/lib/dpkg/lock
  • 20145317许心远《信息安全系统设计基础》第6周学习总结

问题:找不到指令yas。

解决方案:bixon flex词法分析工具没有安装

  • 20145211黄志远《信息安全系统设计基础》第6周学习总结

问题:磁盘不共享的问题,Please resume and shutdown Windows fully (no hibernation or fast restarting)

解决方案:windows下为了快速启动,内核采用了“休眠”的模式,启动时就是混合启动,所以速度很快,一般8秒左右;于是只要在win10下,命令行彻底关机就行了:shutdown -s -t 1

  • 20145224陈颢文《信息安全系统设计基础》第6周学习总结

陈颢文同学的博客里为大家提供了如何在Ubuntu中创建与Windows的共享文件夹的详细教程~

  • 20145301赵嘉鑫《信息安全系统设计基础》第6周学习总结

问题:关于Linux下Y86的卸载

解决方案:

输入如下命令:sudo apt-get autoremove --purgesudo ———— 获取 root 权限apt-get ——— 执行安装卸载功能的软件autoremove — 告诉 apt-get 我们所要做的操作是移除软件--purge ——— 注意这前面是两个短划线,这个参数是告诉他们要完整的干净的彻底的移除最后在这条指令后加上你所要卸载的全称即可

总结

本周内容相对轻松,同学们的问题集中在y86模拟器的安装以及汇编指令的运用上。关于模拟器的安装,大多数同学通过参考同学的博客以及百度都顺利解决,由于刚开始用虚拟机,还是有很大一部分同学没有在虚拟机上进行Y86模拟器的安装,而是直接在实验楼上进行了实践,还是可以尝试在虚拟机中重新进行安装测试。关于课本上的代码,只要熟知命令的作用与区别,便能很好的掌握例题的做法。周一考试的题目也相对简单,只要认真学习例题的同学,本周的考试应该是很轻松的。

转载于:https://www.cnblogs.com/20145240lsj/p/6150698.html

20145240 《信息安全系统设计基础》第六周同学问题总结相关推荐

  1. 20135223何伟钦—信息安全系统设计基础第六周学习总结

    第四章:处理器体系结构 ISA指令集体性结构--处理器支持的指令和指令的字节编码 HCL硬件控制语言-描述处理器设计 Y86--定义一个指令集体系结构,包括定义各种状态元素.指令集和他们的编码.一组编 ...

  2. 信息安全系统设计基础第六周学习总结—20135227黄晓妍

    第四章 ISA 指令集体系统结构:一个处理器支持的指令和指令的字节级编码. 不同的处理器家族有不同的ISA. Y86 本章定义的一个简单的指令集.包括各种状态元素.指令和它们的编码.一组编程规范和异常 ...

  3. # 20155337 2017-2018-1 《信息安全系统设计基础》第二周课堂实践+myod

    20155337 2017-2018-1 <信息安全系统设计基础>第二周课堂实践+myod 因为在课上已经提交了四个实验,还欠缺最后一个实验,反省一下自己还是操作不熟练,平时在课下应该多多 ...

  4. # 2017-2018-1 20155224 《信息安全系统设计基础》第九周学习总结

    2017-2018-1 20155224 <信息安全系统设计基础>第九周学习总结 教材学习内容总结 存储器 随机访问存储器(RAM): 静态RAM:用来作为高速缓存存储器,每个位存储在一个 ...

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

    20155337 2017-2018-1 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 1.1信息就是位+上下文 hello.c程序是以字节序列的方式储存在文件中的.每个字节都 ...

  6. 20145227《信息安全系统设计基础》第一周学习总结

    20145227<信息安全系统设计基础>第一周学习总结 学习内容总结 Linux是一个操作系统.如果使用GUI,Linux和Windows没有什么区别.Linux学习应用的一个特点是通过命 ...

  7. 2018-2019-1 20165221 《信息安全系统设计基础》第一周学习总结

    2018-2019-1 20165221 <信息安全系统设计基础>第一周学习总结 教材学习总结 有关vim 打开方式:vim [文件名] 按i会进入insert模式,可以对代码进行编辑 按 ...

  8. 2017-2018-1 20155228 《信息安全系统设计基础》第一周学习总结

    2017-2018-1 20155228 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 一.在linux环境下编程 (一)用vi编写hello.c的C语言程序 编译程序得到a. ...

  9. 20135203齐岳 信息安全系统设计基础第五周学习总结

    20135203齐岳 信息安全系统设计基础第五周学习总结 学习计时:共10小时 读书:5 代码:1 作业:2 博客:2 第四章 处理器体系结构 一.学习目标 本章内容是处理器体系结构,重点掌握ISA, ...

  10. 2017-2018-1 20155227 《信息安全系统设计基础》第一周学习总结

    2017-2018-1 20155227 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 快速浏览一遍教材,课本每章提出至少一个自己不懂的或最想解决的问题并在期末回答这些问题 一 ...

最新文章

  1. ubuntu 14.10安装zabbix(lnmp环境)
  2. linux系统qt中make安装,Linux系统下Qt的基本安装和配置
  3. linux socket 多人聊天软件,Linux Socket编程---TCP实现多客户端的网络聊天室
  4. centos 6安装报错
  5. python头文件库_跟老齐学Python之不要红头文件(1)
  6. Unity WebGL打包微端时遇到的indexedDB加载问题
  7. 苹果高通“情变”祸及所有中国 iPhone 用户!
  8. java 中的 long
  9. 安卓获取res下的资源文件:string字符串、color颜色、dimen尺寸、array数组、drawable图片和xml、anim/animator动画、raw媒体、assets资源
  10. 【解读】Http协议
  11. ISIS开发出加密安卓通信软件
  12. JavaScript替换字符串中括号里的内容
  13. 天正的计算机快捷命令大全,新手必看-史上最全CAD快捷键大全
  14. java mian是什么_java mian方法详解
  15. you need to install the latest version of Visual Studio
  16. ArcMAP实现矢量数据平移
  17. 企业级微信小程序实战详解
  18. 北京理工大学计算机考研资料汇总
  19. js 为label标签和div标签赋值
  20. 唉 我的libgdx

热门文章

  1. app软件系统开发好后有哪些盈利方式?
  2. java 树形图_java实现树状图
  3. 电脑技巧:原版Windows系统与Ghost系统的区别
  4. Redis容灾备份的方法
  5. 实现一个方法,给定一个输入字符串,能够删除所有连续同样字母(大小写不敏感)。例如,输入为ABBCCCCCBBAB,输出就是 ABCBAB
  6. Ubuntu折腾记录
  7. 让电脑键盘L键变成锁定计算机怎么办,教你电脑键盘按键错乱怎么恢复
  8. Linux之安装Nginx(安装包方式)
  9. 使用Notepad++实现文本编辑的豆沙绿背景颜色,护眼
  10. python读写文件is和==区别常用模块