zoukankan      html  css  js  c++  java
  • 信息安全系统设计基础第六周学习总结

    第四章 处理器体系结构

    4.1 Y86指令集体系结构

      4.1.1 程序员可见的状态:Y86程序中的每条指令都会读取或修改处理器状态的某些部分。
         8个程序寄存器:%eax、%ebx、%ecx、%edx、%esi、%edi、%esp、%ebp。存储一个字。
         存储器:可以理解为很大的字节数组,保存着程序和数据。Y86用虚拟地址来引用存储器位置。
         物理地址:硬件和操作系统软件联合将虚拟地址翻译成实际,指明数据实际保存在存储器的那个位置。

      4.1.2 Y86指令:基本上是IA32指令集的一个子集。
         Y86指令的更多细节
         • mov指令分四个不同的指令,源可以是立即数i、寄存器r、存储器m。目的可以是寄存器r、存储器m。
         存储器传送指令中的存储器引用方式是简单的基地址和偏移量形式。没有mmmovl和immovl。
         • 有4个整数操作指令,只对寄存器数据进行操作。
         • 7个跳转指令。根据分支指令类型和条件码的设置来选择分支。
         • 6个条件传送指令。
         • call指令返回地址入栈,然后跳转到目的地址。ret指令从这样的调用过程中返回
         • pushl和popl实现入栈和出栈
         • halt停止指令的执行。

      4.1.3 指令编码:寄存器标示符,寄存器指示符字节,4字节常数字,相反。
         确定字节编码的方法:
         • 汇编码表示的第一个字节前端的字节编码
         
         • 寄存器指示符字节
         
         • 4字节常数反序
         重点掌握指令序列和字节编码的转换。
      4.1.4 Y86异常:异常处理程序

         

      4.1.5 Y86程序

         

          Y86和IA32的区别在于Y85可能需要多条指令来执行一条IA32指令所完成的功能。

          汇编器命令:以“.”开头的词。告诉汇编器调整地址

      4.1.6 Y86特别注意

         pushl指令会把栈指针减4并将一个寄存器值写入存储器中。

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

      4.2.1 逻辑门:AND &&.    OR ||.   NOT !

         

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

         限制:多个逻辑门的输出不能连在一起;网必须是无的,即不能形成回路。

         区别:电路的输入变化会影响输出的值;C的表达式参数允许是任意整数,逻辑门只对位值0/1操作。

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

         字级计算的组合电路根据输入字的各个位,用逻辑门计算输出字的各个位。

         不用指定字的大小。可以声明位数。允许比较字是否相等。

         情况表达式:

         

      4.2.4 集合关系

         判断集合关系的通用格式:

         

      4.2.5 存储器和时钟

         • 时钟寄存器:储存单个位或字

         • 随机访问存储器:储存多个字,用地址选择该读写哪个字

         

    4.3 Y86的顺序实现

      4.3.1 将处理组织成阶段

         各个阶段(内)执行操作

         取指:从存储器中读取操作,地址为程序计数器的值→译码→执行→访存→写回→更新PC

         

      4.3.2 SED硬件结构

      4.3.3 SED的时序

      4.3.4 SED阶段的实现

         

         1、取指阶段:包括指令存储硬件单元,第一个字节为指令字节

         2、译码和写回阶段:

              寄存器文件有四个端口,每个端口都有地址链接和数据链接

              

         3、执行阶段

         4、访存阶段

         5、更新PC阶段

    作业:

    在上一个make时无法进入目录,导致后面没法编译

  • 相关阅读:
    linux环境变量
    linux make configure make
    摘自(http://www.ruanyifeng.com/blog/2011/07/linux_load_average_explained.html)
    linux eaccelerator
    linux du df ls
    linux phpize
    mysql 分页
    mysql 执行计划和慢日志记录
    mysql 添加/删除列(column)
    mysql 索引
  • 原文地址:https://www.cnblogs.com/javajy/p/4888817.html
Copyright © 2011-2022 走看看