2017-2018 20155317 《信息安全系统设计基础》第7周学习总结
2017-2018 20155317 《信息安全系统设计基础》第7周学习总结
教材学习内容总结
1.Y86指令集:
- movl指令被一分为四:
irmovl 立即数(i) rrmovl 寄存器(r) mrmovl 目的可以是寄存器(r) rmmovl
存储器(m) - 对于整数的运算 addl、subl、andl、xorl,仅对寄存器的数据进行运算,并参照zf、of、sf这三个标志位
- jmp、jle、jl、je、jne、jge、jg这个七个跳转指令将根据当下分支指令的类型和标志位来选择分支
- cmovle、cmovl、cmove、cmovne、cmovge、cmovg
2.HCL
- HCL用来模拟计算机逻辑 .HCL具有一些硬件硬件描述语言的特性,允许用户描述布尔函数和字级选择操作.
- 逻辑门:AND:&&;OR:||;NOT:!
- 多路复用器(MUX)多路复用器即数据选择器,用来将N个输入通道的数据复用到一个输出通道上。4选1多路复用器的实现结构如图所示:
- HCL中,多路复用函数是用情况表达式来描述的,这个表达式包含一系列情况,每种情况i都有一个布尔表达式selecti和一个整数表达式expri,前者表明什么时候该选择这种情况,后者指明的是得到的值
- 存储器和时钟:
①、时钟寄存器:简称寄存器,存储单个位或字。时钟信号控制寄存器加载输入值。
②、随机访问存储器:简称存储器,存储多个字,用地址来选择该读或者该写哪个字。
时钟寄存器的典型应用是程序计数器PC、条件码寄存器以及程序状态。它们都有明确的输入,这意味着它们的值其实是某几个值的一个函数,比如条件码寄存器的输入主要就是逻辑计算单元的值,因此条件码寄存器的值就可以看做是逻辑计算单元的函数。
3.Y86的顺序实现
- SEQ:顺序处理器。每个时钟周期上,SEQ执行一条完整指令所需所有步骤。
- 基本阶段:
①取指:从存储器读取指令字节,地址为程序计数器PC的值
②译码:从寄存器读入最多两个操作数,得到valA或valB
③执行:算术/逻辑单元要么执行指令指明的操作,计算存储器引用的有效地址,要么增加或减少栈指针。得到的值为valE
④访存:将数据写入存储器,或从存储器中读出数据,读出的值为valM
⑤写回:最多可以写两个结果到寄存器文件
⑥更新PC:将PC设为下一条指令的地址
教材学习中的问题和解决过程
代码调试中的问题和解决过程
- 问题1:在执行
sudo rm /var/lib/dpkg/lock
sudo apt-get install bison flex
- 会出现进程被其他程序占用的情况,只需要用kill来结束就好,由于当时虚拟机不小心卡掉了,后来这是运行成功的截图
-
问题1解决方案:
-
代码托管
上周考试错题总结
- 错题1及原因,理解情况
- 错题2及原因,理解情况
- ...
结对及互评
点评模板:
- 博客中值得学习的或问题:
- xxx
- xxx
- ...
- 代码中值得学习的或问题:
- xxx
- xxx
- ...
- 其他
本周结对学习情况
- [结对同学学号1](博客链接)
- 结对照片
- 结对学习内容
- XXXX
- XXXX
- ...
其他(感悟、思考等,可选)
xxx xxx
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 2/4 | 18/38 | |
第三周 | 500/1000 | 3/7 | 22/60 | |
第四周 | 300/1300 | 2/9 | 30/90 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。 耗时估计的公式 :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
-
计划学习时间:XX小时
-
实际学习时间:XX小时
-
改进情况:
(有空多看看现代软件工程 课件 软件工程师能力自我评价表)