4.1 指令系统

前言

image-20260220183411571

指令系统是控制器部分的内容。

控制器和运算器组成了CPU。

image-20260220183511003

image-20260220183537805

指令集体系结构(ISA

  • ISA是软件和硬件之间接口的完整定义,包含了:基本数据类型,指令集,寄存器,寻址模式,储存体系,中断和异常处理及外部I/O

  • 一台计算机所有的指令的集合构成该机的指令系统,由叫指令集。

  • 一台计算机只能执行自己指令系统的指令,不能执行其他系统的指令。eg PC的x86架构,手机的ARM架构

==指令的基本格式==

  • 操作码+地址码

  • 操作码 :给出指令/操作

  • 地址码 :对谁操作/操作对象(给出被操作数据/指令的地址)

  • 指令字长 – 指令长度

    • 单字长指令,双字长指令(存取需两次访存),半字长指令(指令长度=半个机器字长)

指令分类

==**A. ** 按地址码数目(需要几个操作数)不同:==

  • 零地址指令

    • 只有操作码OP
    • when:
      • 不需要操作码的指令(空操作/停机指令…
      • 用在堆栈中的运算类指令。
  • 一地址指令

    • when:

      • OP(A₁)→A₁【只需要一个操作数,eg加1,求反…】(3次访存,取指,读A1,写A1)
      • (ACC)OP(A₁)→ACC【两个操作数,但隐含另一个操作数由ACC累加器提供】(2次访存,取指,读A1)
      • 【A₁表示主存地址,(A₁)表示A₁所指向的地址的内容】
  • 二地址指令

    • when:
      • (A₁)OP(A₂)→A₁【用于需要两个操作数的指令】(完成一条指令需要 4 次访存)
  • 三地址指令

    • when:
      • (A₁)OP(A₂)→A₃(完成一条指令需要 4 次访存)
  • 四地址指令

    • when:
      • (A₁)OP(A₂)→A₃,A₄=下一条将执行指令的地址 (执行指令后,PC不是简单地+1,而是转到A₄所指的地址)
    • 若指令字长32位,操作码占8位4个地址码字段各占6位。
    • 每个操作数直接寻址范围为2^6=64。若地址码均为主存地址,则完成一条四地址指令需要4次访存(取指令1,取两个操作数2,存结果1)

==B. 按指令长度==

  • 定长指令字结构:指令系统中所有指令的长度都相等
  • 变长指令字结构

==C. 按操作码长度==

  • 定长操作码:n位操作码字段的指令系统最大能够表示2^n条指令

  • 可变长度操作码

  • (留图)

==D. 按功能分类==

  • 数据传送
    • LOAD 把存储器中的数据放到寄存器
    • STORE 把寄存器中的数据放到存储器
  • 算术和逻辑运算
    • 算术:加减乘除,自增,求补..
    • 逻辑:与或非异或…
  • 移位操作:算术移位,逻辑移位,循环移位。
  • 转移操作:无条件转移(JMP),有条件转移,调用(CALL),返回(RET),陷阱(Trap)…
  • 输出输入操作

扩展操作码

==B+C→扩展操作码==

  • 定长指令字结构+可变长操作码!

  • 指令长度不变,操作码长度 由地址码↓而↑

  • 优点:丰富指令种类

image-20260220224526187

attention:

  • 不允许短码是长码的前缀
  • 各指令的操作码一定不能重复

image-20260220225514999