【计组第三章】指令系统

1,284 阅读4分钟

本章总览

(3.1) 指令格式

(3.1.1) 指令格式

(3.1.2) 地址码结构

1. 四地址指令

  • 优点:直观,下一跳指令的地址明显。
  • 缺点:指令长度长;每个地址位16位,整个地址码长达64位。

2. 三地址指令

把标记下一个地址的存放工作交给一个程序计数器(Program Counter)来存放。

  • 每次执行一条指令PC自增1,直接取出下一条指令的地址。

3. 二地址指令

4. 一地址指令

5. 零地址指令

(3.1.3) 指令的操作码

操作码指明了指令的操作性质及功能。

1. 规整型(定长编码)

在指令系统中有m条指令,指令中操作码字段的位数为N位,则关系如下

  • m <= 2^N (推出)==> N >= log2m2为底,m为对数
  • 优点:简化硬件设计,减少指令译码时间。在字长较大的计算机中应用普遍

* 2. 非规整型(变长编码)

变长编码即操作字段的位数不固定,且分散地放在指令字的不同位置上。

  • 特点:常用的非规整编码的方式是扩展操作码
    • 它让操作数地址个数多的指令(三地址指令)的操作码短些,操作数地址个数少的指令(一或零地址指令)的操作码长些

例题:

基本步骤:

  • 根据上一层预留的地址指令要求本层的地址指令个数来设计本层的二进制范围。

附:操作类型

操作码总结

3.1.3 总结

* (3.2) 寻址技术

寻址指的是寻找操作数的地址或者下一条将要执行的指令地址。寻址技术是硬件对软件最早提供支持的技术之一。

  • 寻址技术包括:编址方式寻址方式

(3.2.1) 编址方式

1. 编址

要对寄存器、主存储器、输入输出设备进行访问,必须首先对他们进行编址。

  • 如果访问对象是cpu的寄存器,指令字中应给出寄存器的编号。
  • 主存的存储单元,给出主存单元的地址。
  • 如果是输入输出设备中的一个寄存器,指令字应该给出设备编号地址或设备映像地址。

2. 编址单位

附:数据的存放

(1) 字编址

  • 优点:实现简单,地址信息没有浪费。
  • 缺点是不支持非数值应用。

(2) 字节编址

  • 优点:编址单位与信息的基本单位相一致。
  • 缺点:存在地址信息的浪费。

(3) 位编址

  • 地址信息浪费巨大。

3. 指令中地址码的位数

(3.2.2) 指令寻址和数据寻址

1. 指令寻址

  • 顺序寻址;PC加1,自动形成下一条指令的地址。
  • 跳跃寻址;通过程序转移类指令实现。
    • 转移地址形成(寻址)方式有3种:
      • 直接寻址
      • 相对寻址
      • 间接寻址
        程序计数器PC存放下一条指令的地址。

(3.2.3) 基本的数据寻址方式

数据寻址方式总览

操作数类型

  • 地址;无符号数
  • 数字;浮点、顶点、十进制数
  • 字符:ASCII码
  • 逻辑数;逻辑运算

1. 立即寻址

数据包含在指令中,取出指令也就得到了操作数

2. 寄存器寻址

5. 寄存器间接寻址

3. 直接寻址

4. 间接寻址

附:隐含寻址

【表格】基本寻址方式总结

3种偏移寻址

1. 变址寻址

2. 基址寻址

基址寻址和变址寻址的异同

  • 相同:有同样的硬件实现(寄存器)
  • 不同:
    • 变址寻址:
      • 变址寄存器提供修改值,指令中提供基准值。
      • 面向用户,用于访问字符串、向量、数组等成批数据。
    • 基址寻址:
      • 基址寄存器提供基准值,指令中提供位移量。
      • 面向系统,主要用于逻辑地址和物理地址的变换,以解决程序在主存中的再定位和扩展寻址空间。

3. 相对寻址

例题请参考:bz4.2.3

【表格】偏移寻址总结

(3.3) 堆栈与堆栈操作

堆栈是一种按特定顺序(FILO、LIFO)进行存取的存储区。在计算机中堆栈主要用于暂存终端节点、子程序调用时的返回值和参数的传递、状态标记以及现场信息等。

(3.3.1) 堆栈结构

1. 寄存器堆栈

附:堆栈寻址

2. 存储器堆栈

自底向上生成堆栈

自顶向下生成堆栈

(3.4) 指令类型

(3.4.1) 数据传送类指令

1. 一般传送指令

2. 堆栈操作指令

3. 数据交换指令

(3.4.2) 运算类指令

1. 算术运算类指令

2. 逻辑运算类指令

3. 移位类指令

(3.4.3) 程序控制类指令

1. 转移指令

2. 子程序调用指令

3. 返回指令

(3.4.4) 输入输出类指令

1. 独立编址的I/O

2. 统一编址的I/O

(3.5) 指令系统的发展

(3.5.2) 从复杂指令系统到精简指令系统

  • CISC(complex instruction set computer),复杂指令系统计算机
  • RISC(reduced instruction set computer),精简指令系统计算机

【本章总结】