计算机组成原理 指令系统

一、机器指令

每一条 机器语言 的指令叫 机器指令

全部机器指令的 集合 叫机器的 指令系统

指令由 操作码地址码 组成,指令字长 与操作码长度、操作数地址长度、操作数地址个数有关。

  • 操作码:指明该指令要完成的操作、对什么类型的数据进行操作(有的指令系统还在此处说明了操作数的寻址方式),其长度可以固定,也可变化,操作码位数随地址数减少而增加。
  • 地址码:指出指令操作数地址、结果地址、下一条指令地址。

注:

  • 操作吗并非一定如上图所示,集中在一个区域,可以分散在指令不同字段中。
  • 使用频率高的指令用短操作码,使用频率低的用长操作码,可缩短编译时间

(1)四地址指令

格式:

在执行过程中,访存 4 次,指令直接寻址范围太小

由于程序计数器 PC 有计数功能,可自动形成下一条指令地址,故可得三地址指令。

(2)三地址指令

格式:

在执行过程中,访存 4 次。

若将中间计算结果放入 CPU 寄存器中(而不放入主存),则可省去结果地址,得到二地址指令。

(3)二地址指令

格式:

在执行过程中,访存 3 次。

若将一位操作数直接放于运算器 ACC 中,则得到一地址指令。

(4)一地址指令

格式:

在执行过程中,访存 2 次。

(5)零地址指令

无地址码,如 进栈出栈指令。

二、操作数类型和操作类型

1.操作数类型

  • 地址:无符号整数
  • 数字:定点数、浮点数、十进制数
  • 字符:ASCII
  • 逻辑数据

2.数据存放方式

  • 任意位置开始:浪费存储空间,访存时间短
  • 每次从一个字起始位置开始
  • 按“边界对准”存储:从地址整数倍位置开始访问。如下图:

3.操作类型

  • 数据传送
  • 算数逻辑运算
  • 移位:分算术移位、逻辑移位、循环移位
  • 转移
  • 输入输出(对于 I/O 单独编址的计算机,才有输入输出指令)
  • 其他:如等待指令、停机指令等

转移:

分无条件转移、条件转移、调用与返回、陷阱与陷阱指令

  1. 调用与返回指令通常配合使用
  2. 陷阱指令通常不提供给用户,作为隐指令,在有意外故障时由 CPU 自动产生并执行。

三、寻址方式

寻址方式指确定本条指令的数据地址,以及下一条指令的地址的方法。

分为:

  • 指令寻址
  • 数据寻址

1.指令寻址

  • 顺序寻址:PC 自动加 1 ,形成下一条指令地址(注意,此处 “1”的含义,若指令字长 32 字节,存储单元 8 字节,则此时 PC+4)
  • 跳跃寻址:由转移指令指出

2.数据寻址

(1)立即寻址

特点:形式地址 A 不是地址,而是操作数本身,又称为立即数。

执行阶段不必访存。

(2)直接寻址

特点:形式地址 A 就是有效地址

执行阶段只访存 1 次,但是必须通过修改 A 的值才可修改操作数地址。

(3)隐含寻址

特点:指令字中补明显给出操作数地址,地址隐含于操作码或某个寄存器。

其中,寻址特征部分为隐含寻址,A 为直接寻址。

有利于缩短指令字长。

(4)间接寻址

分为一次间址(如上图)、多次间址(A 所指的还不是最终地址)。

扩大了操作数寻址范围,利于编址程序,缺点为访存时间长。

(5)寄存器(直接)寻址

A 为寄存器编号,操作数在 A 所指寄存器中。

执行时无需访存,执行时间短。

(6)寄存器间接寻址

A 为寄存器编号, A 所指寄存器中存有效地址。

执行阶段仍需访存,便于编写循环程序。

(7)基址寻址

采用专门寄存器做基址寄存器,有效地址 EA = 基址寄存器 BR 中地址 + A

(8)变址寻址

有效地址 EA = 变址寄存器 IX 中地址 + A

与基址寻址不同

  • 基址寄存器的内容由操作系统、管理程序确定,A 可变。
  • 变址寄存器内容由用户确定,A 不可变。,主要用于处理数组问题。

(9)相对寻址

其有效地址为程序计数器 PC 中的地址,与指令字中的形式地址 A 相加而得。

(10)堆栈寻址

堆栈寻址指令字中没有形式代码字段,属于零地址指令。

四、RISC 技术

  • RISC 精简指令系统计算机

  • CISC 复杂指令系统计算机

本文中图片除第一张外均为刘宏伟教授在中国大学MOOC上的课件截图

发布了23 篇原创文章 · 获赞 11 · 访问量 8333

猜你喜欢

转载自blog.csdn.net/weixin_42107217/article/details/104071132