指令系统——计算机组成原理

指令系统

4.1指令系统的发展与性能要求

  1. 指令系统的发展

    计算机的程序是由一系列的机器指令组成

    计算机的指令有微指令机器指令宏指令之分。

    微指令是微程序级的命令,属于硬件;

    宏指令是由若干机器指令组成的软件指令,属于软件;

    机器指令介于微指令与宏指令之间,通常简称为指令

    一台计算机上的所有机器指令的集合成为这台计算机的指令系统

    有CISC和RISC之分,前者是复杂指令系统计算机,后者是精简指令系统计算机

  2. 指令系统的性能要求

    (1)完备性:指令足够使用

    (2)有效性:程序占据存储空间小、执行速度快

    (3)规整性:包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性

    (4)兼容性:系列机各机种之间具有相同的基本结构和共同的基本指令集

  3. 低级语言与硬件结构的关系:略

4.2指令格式

机器指令是用机器字来表示的。表示一条指令的机器字成为指令字,简称指令。

指令格式,是指令字用二进制代码表示的结构形式,通常由操作码字段和地址码字段组成

操作码字段:OP;

地址码字段:A

  1. 操作码

    OP表示该指令应进行什么性质的操作,如加、减、乘、除等。

    一般来说,一个包含n位的操作码最多能够表示 2^n 条指令

  2. 地址码

    根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令

    有零地址指令、一地址指令、二地址指令和三地址指令

    在二地址指令格式中,可以归结为三种类型:

    (1)访问内存的指令格式,称为存储器-存储器(SS)型指令,这种操作时都是涉及内存单元

    (2)访问寄存器的指令格式,称为寄存器-寄存器(RR)型指令

    (3)寄存器-存储器(RS)型指令

  3. 指令字长度

    一个指令字中包含二进制代码的位数,称为指令字长度。

    机器字长是指计算机能直接处理的二进制数据的位数,决定了计算机的运算精度。机器字长通常与主存单元的位数一致。

    指令字长度等于机器字长度的指令,称为单字长指令;等于半个机器字长的指令,称为半字长指令;等于两个机器字长度的指令,称为双字长指令

  4. 指令助记符

    硬件只能识别1和0,操作码在机器上都有对应的二进制代码。便于书写和阅读,用英文的缩写代替,缩写码叫做指令助记符,如ADD、SUB、MOV、JMP等

例题:

指令格式如下,OP为操作码,试分析指令格式的特点
|15    9|      |7         4|3          0|
|   OP  |  ——  |  源寄存器  |  目标寄存器  |

解:
(1)单字长的二地址指令
(2)操作码字段OP可以指定2^7=128条指令
(3)源寄存器和目标寄存器都是通用寄存器,可分别指定16个,RR型指令
(4)常用于算术逻辑运算类指令

指令格式如下,分析指令格式特点
|15     10|        |7         4|3           0|
|   OP    |   ——   |  源寄存器  |  变址寄存器  |
|              位移量(16位)                  |

解:
(1)双字长二地址指令,用于访问存储器
(2)OP为6位,可以指定64种指令
(3)一个操作数在源寄存器中,目标操作数在存储器中(由变址寄存器和位移量决定),RS型指令

4.3操作数类型

4.4指令和数据的寻址方式

存储器既可以存放数据,也可以存放指令。

寻址方式分为两类,指令寻址方式和数据寻址方式。

冯.诺依曼型结构的计算机中,内存中指令的寻址与数据的寻址是交替进行的

哈佛型计算机中指令寻址和数据寻址是独立进行的

(1)指令的寻址方式

有顺序寻址和跳跃寻址之分

(2)操作数基本寻址方式

形成操作数的有效地址的方式,称为操作数的寻址方式

有 隐含寻址、立即寻址、直接寻址、间接寻址、寄存器寻址、寄存器间接寻址、偏移寻址(相对寻址(使用PC)、基址寻址、变址寻址)

段寻址方式 :基地址+偏移量

4.5典型指令

  • MOV 传送
  • STO 存数 : 由CPU向存储器传送字
  • LAD 取数 : 由存储器向CPU传送字
  • EXC 交换 : 源和目标交换内容
  • CLA 清零
  • SET 置1
  • PUS 进栈
  • POP 退栈
  • ADD、SUB、MUL、DIV、ABS、NEG(变负)、INC(增量,操作数加1)、DEC(减量,操作数减一)
  • AND、OR、NOT、EOR(异或)、TES(测试)、COM(比较)、SHI(移位)、ROT(循环移)
  • JMP、JMPX(条件转移)、JMPC(转子)、RET(返回)
posted @ 2017-11-01 15:48  chlewn  阅读(6857)  评论(0编辑  收藏  举报