• 计组原理知识点整理之指令系统


    计算机组成原理

    指令系统

    指令概述

    • 微指令

      • 硬件
    • 机器指令

      • 简称指令
      • 符号表示---->汇编指令
    • 宏指令

      • 软件

    指令系统

    • 指令系统分类

      • 复杂指令系统计算机CSIC

      • 精简指令系统计算机RSIC

        • 选取使用频率最高的一些简单指令,指令条数少
        • 指令长度固定,指令种类少,寻址方式种类少
        • 只有取数存数指令访问存储器,其他都在寄存器中进行
    • 性能要求

      • 完备性

        • 功能齐全
      • 有效性

        • 效率高
      • 规整性

        • 指令格式与数据格式一致性
      • 兼容性

        • 向上兼容
    • 指令格式

      • 指令字

        • 指令字长度

          • 一个指令字中包含二进制代码的位数,其长度应该与计算机的数据字长相匹配,以简化指令访存的操作,一般指令字长为计算机字长的整数倍。

          • 分类

            • 单字长指令

              • 指令字长等于机器字长
            • 双字长指令

              • 指令字长等于两个机器字长指令
              • 目的:提供足够的地址位来解决访问内存任何单元的寻址问题
              • 缺点:是必须两次或多次访问内存以取出一整条指令,降低了CPU的运算速度,又占用了更多的存储空间。
        • 机器字长

          • 计算机能直接处理的二进制数据的位数,他决定了计算机的运算精度。
      • 结构

        • 操作码OP

          • 分类

            • 固定长度

              • 优点:编码方法简单,便于指令的译码
              • 缺点:不方便指令系统中增加新的指令(扩展不方便)
            • 可变长度

              • 减小操作码的平均长度,提高指令编码的效率,指令的扩展方便
            • 计算指令操作码的平均长度

          • 设计

            • 与地址码的设计相匹配

              • 如指令长度固定的情况下,地址码数量较多的指令可以安排较短的操作码,地址码数量较少的指令中可以安排较长的操作码
            • 编码

              • 哈夫曼编码
            • 扩展

        • 地址码A

          • 零地址指令

            • 空操作 停止等
          • 一地址指令

            • AC<-(AC)op(A)

              • 指令编码中只有一个地址码,指出了参加操作的一个操作数的存储位置A
              • 如果还有另一个操作数则隐含在累加器AC中
          • 二地址指令

            • A1<-(A1)op(A2)

              • eg: MOV AL ,BL

          ADD AL,30

          • 按操作数所在位置分类

            • 寄存器-寄存器(RR)型指令
            • 寄存器-存储器(RS)型指令
            • 存储器-存储器(SS)型指令
          • 三地址指令

            • A3<-(A1)op(A2)
      • 特点

        • 指令字长
        • 地址格式
    • 寻址方式

      • 指令寻址

        • 目的

          • 确定下一条预执行指令的指令地址
        • 寻址方式

          • 顺序寻址

            • (PC)+1->PC 程序计数器自动加1
          • 跳跃寻址

            • 由转移指令JMP指出
      • 数据寻址

        • 目的

          • 把操作数的形式地址A,变换为操作数的有效地址EA
        • 寻址方式

          • 隐含寻址

            • 例如:单地址的指令格式,没有在地址字段指明第二操作数地址,而是规定累加寄存器AC作为第二操作数地址,AC对单地址指令格式来说是隐含地址
          • 立即寻址

            • 形式地址A就是操作数本身
          • 直接寻址

            • EA=A

              • 直接根据读内存找到操作数,形式地址不需要经过任何处理
          • 间接寻址

            • EA=(A)

              • 有效地址由形式地址间接提供,形式地址是操作数的地址的地址
          • 寄存器寻址

            • EA=R

              • 形式地址是寄存器的编号,直接去寄存器中寻址操作数
          • 寄存器间接寻址

            • EA=(R)

              • 操作数里存放的是寄存器的编号,寄存器中存的不是操作数而是操作数的有效地址。所以操作数在存储器里。
          • 偏移寻址

            • EA=A+(R)

              • 形式地址需要和另一个寄存器中的地址相加,
                形式地址A是显示的,另一个地址字段隐含在某个专用的寄存器R中
            • 根据寄存器的不同类型来分类

              • 相对寻址

                • EX=A+(PC) ----PC程序计数器 PC存储当前正在执行指令的地址
              • 基址寻址

                • EA=A+(BR) BR为基地址寄存器
              • 变址寻址

                • EA=A+(IX) IX为变址寄存器(专用) 通用寄存器也可以作为变址寄存器
                • 在程序执行的过程中IX内容可变,形式地址A不变,便于处理数组问题
          • 堆栈寻址

    • 指令分类

      • 数据处理

        • 算数运算型指令
        • 逻辑运算型指令
      • 数据存储

      • 数据传送

        • 输入输出类指令
        • 数据传送类指令
        • 指令传送类指令
        • 标志传送指令
      • 程序控制

        • 系统控制类指令

  • 相关阅读:
    torch.Tensor.view (Python method, in torch.Tensor)
    python子类调用父类的方法
    读sru代码
    Python标准库内置函数complex介绍
    numpy之ones,array,asarray
    failed: Name or service not known. wget: unable to resolve host address Ubuntu报错解决
    C++部分基础知识笔记
    《机器学习》西瓜书第十三章半监督学习
    python小笔记
    解决python中调用 imread 报错:ImportError: cannot import name imread
  • 原文地址:https://www.cnblogs.com/wgjmcal/p/13264939.html
Copyright © 2020-2023  润新知