首页 > 代码库 > 20145311 《信息安全系统设计基础》第六周学习总结
20145311 《信息安全系统设计基础》第六周学习总结
20145311 《信息安全系统设计基础》第六周学习总结
教材学习内容总结
书上那几个表还是挺重要的
一个程序编译成在一种机器上运行,就不能在另一种机器上运行
寄存器%esp被入栈、出栈、调用和返回指令作为栈指针
程序计数器PC存放当前正在执行指令的地址
三个一位的条件吗:ZF、SF、OF保存着最近的算数运算或逻辑运算所造成影响的有关信息
Y86指令集:每个指令的第一个字节表明指令的类型,高4位是代码部分,低4位是功能部分
指令集的一个重要性质就是字节编码必须有唯一的解释
IA32(复杂指令集计算机CISC) 精简指令集计算机(RISC)Y86指令集兼有二者的属性
ARM指令集广泛应用在嵌入式系统中(例如手机)
pushl %esp指令压入的是%esp寄存器的旧值
实现数字系统的三个主要组成部分:计算对位操作的函数的组合逻辑、存储位的存储器元素、控制存储器元素的、更新的时钟信号
时钟寄存器:存储单个位或字,时钟信号控制寄存器加载输入值
随机访问存储器:存储多个字,用地址来选择该读或写哪个字
在机器级编程中,寄存器代表的是CPU中为数不多的可寻址的字
Y86的顺序实现:
取指(当前指令的下一条指令的地址VALP)
译码(从寄存器最多读取两个操作数)
执行、访存、写回、更新PC
处理器进入异常处理模式,会开始执行由异常的类型决定的特殊代码
在设计硬件时,降低复杂度的一种方法是让不同的指令共享尽量多的硬件
SEQ的实现包括组合逻辑和两种存储器设备:时钟寄存器(程序计数器和条件码寄存器)、随机访问存储器
重要的原则:处理器从来不需要为了完成一条指令的执行而去读由该指令更新了的状态
SEQ唯一的问题就是它太慢了,时钟必须非常慢,以使信号能在一个周期内传播所有的阶段Y86异常
状态码:描述程序执行的总体状态。
值 名字 含义 1 AOK 正常操作 2 HLT 处理器执行halt指令(指令停止) 3 ADR 遇到非法地址 4 INS 遇到非法指令
Y86中,任何AOK以外的代码都会使处理器停止执行指令,而没有异常处理程序。
HCL中,所有字级的信号都声明为int,不指定字的大小
教材学习中的问题和解决过程
按照那些步骤配置完基本上就可以了
.ys是源代码 .yo是汇编后的结果,用make指令可以进行汇编
下面是两个汇编完的Y86指令以及对应的机器编码:(要理解含义还是看书吧)
课后作业中的问题和解决过程
HCL语言其实没怎么看懂
本周代码托管
好像没什么代码
其他(感悟、思考等,可选)
本周的学习内容主要是处理器是如何对程序进行执行,将汇编语言转换成机器代码后 如何执行一条条机器代码,书上那几个表要好好看,结合几个例子理解一下基本上就可以理解了,学习了Y86指令集体系结构,同时学习了一些与上学期HDL(硬件描述语言)类似的一些组合电路、 门电路、时序电路,最后了解了HCL语言,感觉对这种语言还是没能完全理解,还需要进一步结合例子去领悟。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 100/100 | 1/2 | 10/10 | |
第二周 | 150/200 | 2/4 | 8/18 | |
第三周 | 200/250 | 1/5 | 5/23 | |
第五周 | 50/300 | 1/6 | 9/32 | |
第六周 | 20/320 | 1/7 | 8/40 |
参考资料
- 《深入理解计算机系统V2》学习指导
- ...
20145311 《信息安全系统设计基础》第六周学习总结