指令系统——计算机组成原理
指令系统
4.1指令系统的发展与性能要求
-
指令系统的发展
计算机的程序是由一系列的机器指令组成
计算机的指令有
微指令
、机器指令
、宏指令
之分。微指令
是微程序级的命令,属于硬件;宏指令
是由若干机器指令组成的软件指令,属于软件;机器指令
介于微指令与宏指令之间,通常简称为指令
一台计算机上的所有机器指令的集合成为这台计算机的
指令系统
有CISC和RISC之分,前者是复杂指令系统计算机,后者是精简指令系统计算机
-
指令系统的性能要求
(1)完备性:指令足够使用
(2)有效性:程序占据存储空间小、执行速度快
(3)规整性:包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性
(4)兼容性:系列机各机种之间具有相同的基本结构和共同的基本指令集
-
低级语言与硬件结构的关系:略
4.2指令格式
机器指令是用机器字来表示的。表示一条指令的机器字成为指令字,简称指令。
指令格式,是指令字用二进制代码表示的结构形式,通常由操作码字段和地址码字段组成
操作码字段:OP;
地址码字段:A
-
操作码
OP表示该指令应进行什么性质的操作,如加、减、乘、除等。
一般来说,一个包含n位的操作码最多能够表示 2^n 条指令
-
地址码
根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令
有零地址指令、一地址指令、二地址指令和三地址指令
在二地址指令格式中,可以归结为三种类型:
(1)访问内存的指令格式,称为
存储器-存储器(SS)
型指令,这种操作时都是涉及内存单元(2)访问寄存器的指令格式,称为
寄存器-寄存器(RR)
型指令(3)
寄存器-存储器(RS)
型指令 -
指令字长度
一个指令字中包含二进制代码的位数,称为指令字长度。
机器字长是指计算机能直接处理的二进制数据的位数,决定了计算机的运算精度。机器字长通常与主存单元的位数一致。
指令字长度等于机器字长度的指令,称为单字长指令;等于半个机器字长的指令,称为半字长指令;等于两个机器字长度的指令,称为双字长指令
-
指令助记符
硬件只能识别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(返回)