20145235 《信息安全系统设计基础》第06周学习总结 _01
第4章 处理器体系结
- 一个处理器支持的指令和指令的字节级编码称为它的指令集体系结构(ISA)。
- 不同的出路器有不同的ISA。
- ISA模型看上去应该是顺序指令执行。
- 一个流水线化的处理器可在一个时钟周期内同时执行五条指令的不同阶段,并且保留了Y86 ISA的顺序的性质,就得要求处理很多冒险和冲突。
4.1 Y86 指令集体系结构
Y86,包括定义各种状态元素、指令集和他们的编码、一组编程规范和异常事件处理。
4.1.1 程序员可见的状态
Y86程序中每条指令都会读取或修改处理器状态的某些部分,这称为程序员可见状态。
8个寄存器和IA32的一模一样,但是Y86每个寄存器是一个字,16位。
三个一位的条件码:ZF、SF、OF。
存储器相当于一个很大的字节数组,保存着程序的数据。用虚拟地址来引用存储器,硬件和操作系统联合起来把虚拟地址翻译成物理地址(实际地址)。
程序状态的最后一个部分是状态码start,它表明程序执行的总体状态。它会指示是正常运行,还是出现某种异常。
4.1.2 Y86指令
指令编码长度从一个字节到留个字节不等。
i:立即数 r:寄存器 m:存储器 与movl配合使用第一个字母指明源操作数,第二个字母指明目的操作数。
不允许一个存储器直接与另一个存储器进行数据操作。也不允许直接让立即数传送到存储器。
OPL:addl、subl、andl、xorl。他们只对寄存器数据进行操作。还会对设置条件码。
跳转指令
条件传送指令:cmovXX
call:将返回地址入栈,然后跳到目的地址。ret指令从这样的过程调用中返回。
halt:停止指令
4.1.3 指令编码
第一个字节表明指令的类型。高4位是代码部分,低4位是功能部分。
程序存储器在CPU中的一个寄存器文件中,这个寄存器文件就是一个小的、以寄存器ID作为地址的随机访问存储器。
当需要指明不应该访问任何寄存器时,就用ID值0xF来表示。
有些指令需要一个附加的四字节常数字
分支指令的调用指令的目的地址是一个绝对地址,而不是相对地址。
感想
前两天擦了上周留的屁股,然而并没有全部看完第三章的所有内容,把老师指定的内容都看了。今天才开始这周的学习,今天看的内容理解起来很容易,习题也很简单。感觉老师的进度好快啊,上周学的还没好好消化就开始了第四章。。。。。。。。。