首页 > 代码库 > 20145234黄斐《信息安全系统设计基础》第六周学习总结(课本部分)

20145234黄斐《信息安全系统设计基础》第六周学习总结(课本部分)

教材内容概述

  一个处理器支持的指令和指令的字节级编码称为它的“指令集体系结构”——(ISA)。

  与IA32相比,Y86指令集的数据类型、指令和寻址方式都要少一些,它的字节级编码也比较简单。

  “冒险”指一条指令的位置或操作数依赖于其他仍在流水线中的指令。

4.1 Y86指令集体系结构

  4.1.1 程序员可见状态

  Y86程序中的每条指令都会读取或修改处理器状态的某些部分,这称为“程序员可见状态”。

  Y86的处理器状态类似于IA32,有8个程序寄存器:%eax,%ecx,%edx,%ebx,%esi,%edi,%esp,%ebp,每个寄存器存储一个字

  %esp被入栈,出栈,调用和返回指令作为栈指针。有三个一位的条件码:ZF,SF,OF

  Y86程序用虚拟地址来引用存储器位置;硬件和操作系统软件联合起来将虚拟地址翻译为物理地址

  4.1.2 Y86指令

  Y86指令集基本上是IS32指令集的一个子集

  有四个整数操作指令(addl,subl,andl,xorl);七个跳转指令(jmp,jle,jl,je,jne,jge,jg);六个条件传送指令(cmovle,cmovl,cmove,cmovne,cmovne,cmovge,cmovg);call(返回地址入栈,跳到目的地址);pushl、popl(入栈,出栈);halt(停止指令执行)

  4.1.3 指令编码

  每条指令的第一个字节表示指令的类型,高四位是代码部分,低四位是功能部分

  程序寄存器存在CPU中的一个寄存器文件中。它是一个小的随机访问存储器

  寄存器标识符

  技术分享

  指令集的一个重要性质就是字节编码必须要有唯一的解释

  4.1.4 Y86异常

  Y86状态码

  技术分享 

  4.1.5 Y86程序

  以“·”开头的词是汇编器命令

  ·pos0告诉汇编器应该从地址0处开始产生代码

  指令集模拟器

  4.1.6 某些较特殊的Y86指令

  pushl会把栈指针减四,并将一个寄存器值写入存储器中

4.2 逻辑设计和硬件控制语言HCL

  4.2.1 逻辑门

  布尔函数AND——&&,OR——||,NOT——!

  4.2.2 组合电路与HCL布尔表达式

  组合电路:1.多个逻辑门的输出不可连接在一起;2.组合电路必须五环

  多路复用器:根据输入控制信号的值,从一组不同的数据信号中选出一个。

  4.2.3 字级的组合电路和HCL整数表达式

  多路复用函数使用情况表达式描述的,通用格式为:

  [

    select.1 :expr.1

    select.2 :expr.2

    ……

    select.k :expr.k

  ](select.代表布尔表达式,expr.代表整数表达式)

  算数/逻辑单元(ALU)是一种很重要的组合电路

  4.2.4 集合关系

  通用格式:iexpr in {iexpr1,iexpr2,...,iexprk}

  4.2.5 存储器和时钟

  时钟存储器(寄存器)存储单个位或数字

  随机访问存储器(存储器)存储多个字

  寄存器文件有两个读端口(A与B)以及一个写端口(W)

4.3 Y86的顺序实现

  取指:从存储器读取指令字节,地址为程序计数器的值

  译码:从寄存器文件读入最多两个操作数

  执行:就是执行

  访存:将数据写入存储器或从存储器读出数据

  写回:最多写两个结果到寄存器文件

  更新PC:将PC设置成下一条指令的地址

关于实验楼的问题

今天我原本想要完成实验楼上所说的“下载Y86模拟器”,可是超链接的网址无法打开,而群里我也没有找到相应的网站,希望老师看到后能够回复一个解决方法

20145234黄斐《信息安全系统设计基础》第六周学习总结(课本部分)