4.1 指令系统

0.前言

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

image-20260220183411571

image-20260220183511003

从上面可以看出:

​ PC保存的是:当前执行指令的地址

​ 指令的地址码字段保存的是;操作数的地址

image-20260220183537805


1.指令集体系结构(ISA

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

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

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

==2.指令的基本格式==

  • 操作码+地址码

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

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

  • 指令字长 – 指令长度

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

3.指令分类

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

  • 零地址指令

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

    • when:

      • OP(A₁)→A₁【只需要一个操作数,eg加1,求反…】 (⭐3次访存,取指,读A1,写A1)
      • (ACC)OP(A₁)→ACC【两个操作数,但隐含另一个操作数由ACC累加器提供】(⭐2次访存,取指,读A1,注意写入ACC不用访存的)
      • 【注: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)…
  • 输出输入操作

4.扩展操作码

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

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

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

  • 优点:丰富指令种类

  • 实现方式:A1-A3,每个里面留出1111做扩展码扩展/标记。可有15条三地址指令,15条二地址指令,15条一地址指令,和16条零地址指令。

image-20260220224526187

Attention:

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

image-20260220225514999

补充:

中断隐指令,是由硬件实现的。并不是指令系统中存在的指令。

特权指令,用于保护OS/软件的,不提供给用户使用。

隐含条件:计算机按字节编址,地址需要是8的倍数(Eg:指令字长23bit→24bit)