玩命加载中 . . .

指令系统


机器指令

指令的一般格式

指令由两个部分组成:

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

操作码

前者反映机器做什么操作。其长度可固定,也可变化。

  • 长度固定:大中型计算机
  • 长度不固定:微型机

扩展操作码技术
操作码的位数随地址数的减少而增加。

地址码

地址码用来指出操作数的地址,包括

  • 源操作数的地址
  • 结果目的操作数的地址
  • 下一条指令的地址

按照操作数地址的数目可以分为:

  • 四地址指令
  • 三地址指令
  • 二地址指令
  • 一地址指令
  • 零地址指令

下面分别介绍不同类型的地址指令:

四地址指令
OP A1 A2 A3 A4

OP是操作码,A1为第一操作数地址,A2为第二操作数地址,A3为结果数地址,A4为下一条指令地址。
需要访问存储器4次:取操作码,取操作数两次,存放结果

三地址指令

由于PC可以记录下一条指令的地址,故在四地址指令基础上可以省略A4,得到三地址指令。
仍然需要访问存储器4次。

二地址指令

运算的结果不存入存储器,而是存入CPU中的ACC,那么就可以节省一个地址字段A3。

一地址指令

一个操作数也存放在ACC中,那么整个地址码只有一个字段,表示另一个操作数所在内存地址。

零地址指令

有些操作不需要操作数,如停机、中断返回、空操作等。

指令字长

机器字长:计算机一次能够处理的最长的二进制位数
存储字长:一个存储单元可存储的二进制代码的位数
指令字长:指令中包含的二进制代码的位数,等于操作码长度加上地址码长度

操作数类型和操作类型

操作数类型

包括地址、数字、字符、逻辑数等。

存储器中数据的存放

边界对准。

操作类型

不同的机器操作类型不同,但是有以下几类通用操作。

  • 数据传送
  • 算术逻辑操作
  • 移位操作
  • 转移
    • 无条件转移
    • 条件转移
    • 调用和返回
    • 陷阱指令
  • 输入输出指令

寻址方式

目的:用以确定本条指令的操作数地址和下一条欲执行指令的指令地址。
可分为:

  • 指令寻址
  • 数据寻址

指令寻址

分为

  • 顺序寻址
    依靠程序计数器PC形成下一条指令的地址,顺序寻址
  • 跳跃寻址
    通过转移类指令实现,如JMP 7

数据寻址

通常,指令中的地址码不给出数据的有效地址(记作EA),而是给出一个形式地址(A)。

  1. 立即寻址
    形式地址A就是操作数,称为立即数;
    但是形式地址A的位数限制了立即数的范围。
  2. 直接寻址
    有效地址由形式地址直接给出;
    但是,A的位数限制了指令操作数的寻址范围,且操作数的地址不易修改。
  3. 隐含寻址
    操作数地址隐含在操作码中。
  4. 间接寻址
    数据的有效地址由形式地址间接提供;
    这样一来,可以扩大寻址范围,也便于编制程序。
  5. 寄存器直接寻址
    有效地址即为寄存器编号。
  6. 寄存器间接寻址
    有效地址在寄存器中,而操作数在存储器中。也就是说,与寄存器直接寻址相比,间接寻址还需要访问主存。
  7. 基址寻址
    OP 寻址特征 基址寄存器 操作数地址
    基址寄存器中的内容由操作系统确定,
    在程序执行过程中,基址寄存器中的内容不变,而形式地址改变。

    基址寄存器有隐式和显式两种。
    隐式无需用户指出,显式相当于在一组通用寄存器中,由用户明确指出哪一个作为基址寄存器。

  8. 变址寻址
    特点:EA = (IX) + A
    其中,IX为变址寄存器,其内容由用户给定
    在程序执行过程中,IX内容可变,形式地址A不变
  9. 相对寻址
    公式:EA = (PC) + A
    A是相对于当前指令的位移量(可正可负,补码形式)

RISC与CISC

RISC,采用组合逻辑控制器
CISC,采用微程序控制器


文章作者: 鹿卿
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 鹿卿 !
评论
  目录