zoukankan      html  css  js  c++  java
  • 组成原理(十一):指令系统

    学习重点

    • 机器指令
      • 操作码
      • 地址码
    • 操作数
      • 类型
      • 存储方式
    • 操作类型
    • 寻址方式(10种)
    • RISC和CISC

    1.机器指令

    1. 指令的一般格式:

    2. 操作码:

      • 长度不可变

      • 长度可变

      • 操作码扩展技术:保留码点

        保留的码点是(1111),若增加一个码点(1110),则最多增加16个地址
        原则:短操作码一定不能是长操作码的前缀!!

      • 指令编码:

        • 常用的指令用短操作码
        • 不常用的指令用长操作码
    3. 地址码:

      • 四地址:

        • 四次访存:取指令,取操作数1,取操作数2,保留结果
        • 用PC代替A4—>三地址
      • 三地址:

      用ACC代替A3—>二地址

      • 二地址:

      用ACC代替其中一个操作数(A1或A2)—>一地址

      • 一地址:

      • 零地址:没有地址码,不访存,如CLA

    4. 指令字长取决于:

      • 操作码长度
      • 操作数地址的长度
      • 操作数地址个数

    2.操作数

    1. 类型
      • 地址:无符号整数
      • 数字:定点,浮点,十进制
      • 字符:ASCII码
      • 逻辑数:逻辑运算
    2. 数据在存储器中存放顺序:
      • 大端大尾:大的放在字的后面
      • 小端小尾:小的放在字的后面
    3. 数据在存储器中存放方式:
      • 从任意位置开始:可能会跨存储器字访问

        • 节约空间
      • 从字的开始位置存放: 浪费空间

      • 边界对准:

        • 上面两种方式的折中
        • 地址起始位置是数据长度的整数倍
          • 字节:0,1,2,3....
          • 半字(2字节):0,2,4,6,8....
          • 字(4字节):0,4,8,12....

    3.操作类型

    1. 数据传送:
      • 存储器—>寄存器(LOAD)
      • 寄存器—>存储器(STORE)
      • 存储器—>存储器(MOVE)
      • 寄存器—>寄存器(MOVE)
    2. 算术逻辑操作:加减乘除等
    3. 移位操作:
      • 算术移位
      • 逻辑移位
      • 循环移位(进位和不进位)
    4. 转移操作:
      • 无条件转移:JMP
      • 条件转移
        • 结果为0转:JZ
        • 结果溢出转:JO
        • 结果进位转:JC
        • 跳过指令:SKP
      • 调用和返回
        CALL,RETURN
      • 陷阱(Trap):意外事故中断
        • 不提供用户使用,出现事故时CPU调用(隐指令)
        • 提供给用户使用的陷阱指令
      • 输入输出,IO指令 :IN/OUT
        • 并不是每一个指令集都有
        • IO统一编制则没有该指令

    4.寻址方式

    寻址:确定本条指令操作数地址,或者下一条指令的指令地址

    4.1 指令寻址

    1. 顺序寻址:
      (PC)+1—>PC
    2. 跳跃寻址:
      由主存中存储的JMP转移指令给出
    3. 示意图:

    4.2 数据寻址

    指令格式如下:

    寻址方式如下:

    1. 立即寻址

    2. 直接寻址

    3. 隐含寻址

    4. 间址寻址

    5. 寄存器直接寻址

    6. 寄存器间接寻址

    7. 基址寻址

      • 使用专属寄存器

        BR不可变,A可变
      • 使用通用寄存器

        R0不可变,A可变
    8. 变址寻址:IX

    9. 相对寻址

    10. 堆栈寻址

    5.RISC和CISC

    1. RISC:精简指令集计算机

    2. CISC:复杂指令集计算机

    3. RISC和CISC比较

  • 相关阅读:
    试试中文时间
    一道极限题目,难道不识别align*环境?
    一道求三元函数在空间区域上平均值的题目
    一道用单调有界证明的数列极限题目
    ORA-00119和ORA-00132报错
    安装mysql时提示This application requires .NET framework 4.5.2的解决办法
    Linux防火墙的开启关闭
    ORA-12541:TNS:无监听程序问题 解决办法
    卸载oracle11g
    Linux笔记
  • 原文地址:https://www.cnblogs.com/kenshine/p/14517110.html
Copyright © 2011-2022 走看看