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模拟器时,出现了如下错误:
上网查询解决方案:
在按照提示运行却并没能很好的解决问题。导致这个问题的主要原因是因为/var/lib/dpkg/updates文件下的文件有问题,可能是其他软件安装过程或是其他原因导致的,这里删除掉然后重建即可。
sudo rm /var/lib/dpkg/updates/*
sudo dpkg --configure -a
sudo apt-get update
sudo apt-get upgrade
再输入
sudo apt-get install bison flex
开始安装bison和flex:
安装完成后,
下载sim解压。地址
http://csapp.cs.cmu.edu/public/students.html
找到 Chapter 4: Processor Architecture,
点击Source distribution (README)如下图所示,下载后在虚拟机中解压。
- 问题2
在解压sim.tar文件时:
输入解压命令:
tar -xvf sim.tar
出现问题:
- 解决:
重新下载一次并且记住文件保存路径:
文件路径在下载文件夹中,使用cd进入下载文件夹,再输入解压命令即可:
在解压完成后,图形界面需要输入
sudo apt-get install tcl8.5-dev tk8.5-dev tcl8.5 tk8.5
安装TCL/TK。
在解压后的sim文件夹中找到makefile文件,作如下改动:
进行编译
-
错误:
-
解决方法
再重新编译后还是出现错误,有进行下载但还是有错误,在网上查询后还是未解决。 -
于是在实验楼上进行:
-
进入测试代码,教材p252页代码
asuml.ys
,可以通过
make asuml.yo
进行汇编
然后再使用cat命令查看:
asuml.yo就是汇编后的结果。
-
在做课本p251代码时出现错误:
-
未解决-
代码托管
上周考试错题总结
无
结对及互评
点评模板:
暂无
本周结对学习情况
-
- 结对学习内容
- 共同学习课本第四章和实验楼内容
- 分析课本中代码遇到的问题
- 结对学习内容
思考
本次的内容我感觉难度很大,很难理解和记忆,希望老师上课能多进行讲解和分析这章,在进行Y86的安装时,总是遇到层出不穷的问题,要不断的查资料才能解决,最后到编译那一步因为缺少文件,也不知道怎么解决下载也没用,就在实验楼上做了课本上的练习。
学习进度条
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第四周 | 12/12 | 1/1 | 20/20 | |
第五周 | 271/283 | 1/2 | 15/15 | |
第6周 | 276/283 | 2/3 | 18/18 | |
第7周 | 150/283 | 4/4 | 21/23 | |
第8周 | 294/283 | 4/4 | 24/27 | |
第9周 | 289/283 | 4/4 | 29/23 | |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。 | ||||
耗时估计的公式 | ||||
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。 |
-
计划学习时间:23小时
-
实际学习时间:29小时
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)