1
0
mirror of https://github.com/OmegaZhou/408-notes.git synced 2026-02-02 18:28:58 +08:00
Files
408-notes/计算机组成原理/指令系统.md
2020-08-30 19:57:43 +08:00

5.0 KiB
Raw Blame History

指令系统

指令格式

一般形式

  • 操作码字段+地址码字段

零地址指令

格式

  • 操作码字段

含义

  • 不需要操作数,如空指令、停机指令、关中断指令
  • 在堆栈计算机中,参与运算的若干个操作数直接从栈顶弹出,结果也存放在堆栈中

一地址指令

格式

  • 操作码字段+地址码1

含义

  • 只有目的操作数的单操作数指令,从地址中取数据计算后存回该地址,如递增指令、取反指令等
    • OP(A1)->A1
  • 隐含操作数的双操作指令指令可约定另一个操作数由ACC给出并将结果存入ACC
    • (ACC)OP(A1)->(ACC)

二地址指令

格式

  • 操作码字段+地址码1+地址码2

含义

  • 给出两个操作数进行计算,称为源操作数和目的操作数,其中目的操作数还存放本次运算结果
    • (A1)OP(A2)->(A2)

三地址指令

格式

  • 操作码字段+地址码1+地址码2+地址码3

含义

  • 给出两个操作数进行计算,结果存放在第三个操作数上
    • (A1)OP(A2)->(A3)

四地址指令

格式

  • 操作码字段+地址码1+地址码2+地址码3+地址码4

含义

  • 给出两个操作数进行计算结果存放在第三个操作数上下一条指令的地址为地址码4
    • (A1)OP(A2)->(A3)

分类

  • 定长操作码指令
  • 不定长操作码指令

寻址方式

指令寻址

  • 顺序寻址
    • 程序计数器PC+1得到下一条指令地址
  • 跳跃寻址
    • 转移指令修改PC的值从而修改下一条指令地址

数据寻址

格式

  • 操作码+寻址特征+地址

隐含寻址

  • 不显式给出操作数地址,如规定累加器作为第二操作数地址

立即数寻址

  • 直接给定操作数

直接寻址

  • 直接给出操作数在主存的地址
  • EA=A

间接寻址

  • 给出的地址为操作数地址的地址
  • EA=(A)

寄存器寻址

  • 给出操作数所在的寄存器编号
  • EA=R

寄存器间接寻址

  • 操作数地址在给定的寄存器中
  • EA=(R)

相对寻址

  • 操作数地址EA=(PC)+A

基址寻址

  • 设置基址寄存器BR
  • 由操作系统维护,程序运行时不可改变
  • 使用通用寄存器作为BR用户有权知道作为基址寄存器的寄存器是哪一个
  • EA=(BR)+A
  • 优点
    • 扩大寻址范围
    • 便于解决多道程序问题

变址寻址

  • 设置变址寄存器IX

  • 由用户维护

  • 在程序运行时可修改

  • EA=(IX)+A

  • 优点

    • 扩大寻址范围
    • 适合处理数组问题和循环程序

堆栈寻址

  • 使用栈顶作为隐含操作数地址

结合寻址方式

  • 先间址再变址EA=(A)+(IX)
  • 先变址再间址EA=(A+(IX))
  • etc

运算标记位

  • ZF零标志运算结果为0时置1
  • OF溢出标志运算结果溢出时置1
  • CF进位/借位标志,把操作数都看作无符号数
    • 相减运算A-B时若A<B时则发生借位CF置1
    • 相加运算时若进位CF置1
  • SF符号标志把操作数看作有符号数
    • 结果为正时置1
    • 结果为负时置0

指令系统发展方向

CISC复杂指令系统计算机

  • 指令数目多
  • 指令长度不固定
  • 指令格式多
  • 寻址方式多
  • 可以访存的指令不受限制
  • 各指令使用频率相差大
  • 各指令执行时间相差大,大部分要多个时钟周期
  • 大多数采用微程序控制,部分指令复杂,难以适应硬连线控制
  • 难以优化

RISC精简指令系统计算机

  • 选取使用频率最高的指令,复杂指令功能由简单指令实现
  • 指令长度固定
  • 指令格式少
  • 寻址方式少
  • 只有Load和Store指令可以访存其他指令操作都在寄存器间完成
  • 通用寄存器数目多
  • 采用指令流水线技术,多数指令在一个时钟周期内完成
  • 以硬布线为主,不用或少用微程序控制
  • 注重编译优化

对比

RISC优点

  • 更能利用VLSI芯片面积
  • 运算速度块
  • 便于设计,成本低,可靠性高
  • 便于优化
CISC RISC
指令系统 庞大,复杂 简单,精简
指令数目 一般大于200 一般少于100
指令字长 不固定 固定
可访存指令 不加限制 只有Load/Store指令
指令执行时间 差别大 绝大部分在一周期内完成
指令使用频率 差别大 都比较常用
通用寄存器数 较少
目标代码 难以优化 容易优化
控制方式 绝大多数使用微程序控制 绝大多数为组合逻辑控制
指令流水线 可以通过一定方式实现 必须实现