计算机组成原理<六>——指令系统(一)

简介: 计算机组成原理<六>——指令系统

指令格式


指令的基本格式


指令的定义


指令(又称机器指令):

是指示执行操作的命令,是计算机运行的最小功能单位.一台计算机的所有指令的集合构成该机的指令系统,也称为指令集.


注:一台计算机只能执行自己指令系统中的指令,不能执行其他系统的指令.


一条指令就是机器语言的一个语句,它是一组有意义的二进制代码.


一条指令通常包括操作码字段和地址码字段两部分:


一条指令可能包含0个,一个,2个,3个,4个地址码...


根据地址码数目不同,可以将指令分为零地址指令,一地址指令,二地址指令....

按地址码数目分类


零地址指令OP

指令用途

1.不需要操作数,如空操作,停机,关中断等指令

2.堆栈计算机,两个操作数隐含存放在栈顶和次栈顶,计算结果压回栈顶


指令含义:OP(A1)->A1:完成一条指令需要3次访存:取值->读A1->写A1


一地址指令OP A1


1.只需要单操作数,如加1,减1,取反,求补等


2.需要两个操作数,但其中一个操作数隐含在某个寄存器

指令含:(ACC)OP(A1)->ACC:完成一条指令需要2次访存:取指->读A1

注:A1指某个主存地址,(A1)表示A1所指向的地址中的内容

二地址指令OP A1(目的操作数) A2(源操作数)

常用于需要两个操作数的算术运算,逻辑运算相关指令

指令含义:(A1)OP(A2)->A1

完成一条指令需要访存4次,取指->读A1->读A2->写A1

三地址指令OP A1 A2 A3(结果)

常用语需要俩个操作数的算术运算,逻辑运算相关指令

指令含义:(A1)OP(A2)->A3


完成一条指令需要访存4次,取指->读A1->读A2->写A3


四地址指令OP A1 A2 A3(结果) A4(下址)


指令含义:(A1)OP(A2)->A3,A4=下一条将要执行指令的地址


完成一条指令需要访存4次,取指->读A1->读A2->写A3

正常情况下:取指令之后PC+1,指向下一条指令

四地址指令:执行指令后,将PC的值修改位A4所指地址

指令-按指令长度分类


指令字长:一条指令的总长度(可能会变)

机器字长:CPU进行一次整数运算所能处理的二进制数据的位数(通常和ALU直接相关)

存储字长:一个存储单元中的二进制代码位数(通常和MDR位数相同)

单字长指令:长度等于机器字长

半字长指令:长度等于半个机器字长

双字长指令:长度等于两杯机器字长

定长指令字结构:指令系统中所有指令的长度都相等

变长指令字结构:指令系统中指令的长度不等

定长操作码:指令系统中所有指令的操作码长度都相同;控制器的译码电路设计简单,但灵活性较低

可变长操作码:指令系统中各指令的操作1码长度可变;控制器的译码电路设计复杂,但灵活性高

定长指令字结构+可变长操作码 ->扩展操作码指令格式

指令-按操作类型分类


1.数据传送

LOAD 作用:把存储器中的数据放在寄存器

STORE作用:把寄存器中的数据放到存储器

2.算术逻辑操作

算术:加,减,乘,除,增1,减1,求补,浮点运算,十进制运算

逻辑:与,或,非,异或,位操作,位测试

3.移位操作

算术移位,逻辑移位,循环移位

4.转移操作

无条件转移 JMP

条件转移 JZ:结果为0; JO:结果溢出;JC:结果有进位

5.输入输出操作

CPU寄存器与IO端口之间的数据传送(端口即IO接口中的寄存器)

扩展操作码


定长指令字结构+可变长操作码->扩展操作码指令格式

举例:

指令字长为16位,每个地址码占4位;

前4位为基本操作码字段OP,另有3个4位长的地址字段A1,A2和A3;

4位基本操作码若全部用于三地址指令,则有16条.

1111 1111留作扩展操作码之用,二地址指令为15条;

1111 1111 1111留作扩展操作码之用,一地址指令为15条;

零地址指令为16条

image.png

在设计扩展操作码指令格式时,必须注意以下两点:

1)不允许短码是长码的前缀,即短操作码不能与长操作码的前面部分的代码相同

2)各指令的操作码一定不能重复

通常情况下,对使用频率较高的指令,分配较短的操作码;对使用频率较低的指令,分配较长的操作码,从而尽可能减少指令译码和分析的时间

如下设计:

image.png

设地址长度为n,上一层留出m种状态,下一层可扩展出m*2^n种状态

定长操作码:

优:定长操作码对于简化计算机硬件设计,提高指令译码和识别速度很有利;

缺;指令数量增加时会占用更多固定位,留给表示操作数地址的位数受限

扩展操作码;

优:在指令字长有限的前提下扔保持比较丰富的指令种类;

缺:增加了指令译码和分析的难度,使控制器的设计复杂化;

指令寻址和数据寻址


指令寻址


指令寻址    下一条欲执行指令的地址(始终由程序计数器PC给出)

顺序寻址

通过程序计数器(PC)加1,自动生成下一条指令的地址

(PC)+“1”->PC:这里的1理解为1个指令字长,实际加的值会因指令长度,编址方式而不同;

image.png

如果系统采用变长指令字结构,每一种颜色代表一个指令字长;

image.png

读入一个字,根据操作码判断这条指令的总字节数n,修改pc的值.

(PC)+n->PC

跳跃地址

通过转移类指令实现,是否跳跃受到状态寄存器和操作数的控制

跳跃到的地址分类:绝对地址:由标记符直接得到;相对地址:相对于当前指令地址的偏移量;

跳跃的结果是当前指令修改PC值

image.png

JMP:无条件转移把PC的内容改成7;无条件转移指令类似于C语言中的goto;

数据寻址


在指令中表示一个操作数的地址

结构:操作码+寻址特征+形式地址A

image.png

那么假设我们从第100存储地址,

image.png

这里还能解释成跳转到7的地方吗?显然是错误的,这个程序是从100往后存储的,地址为7的是属于其他的存储地址,我们可以这样解读:基于100往后的7个偏移量;

那么我们再改一下

image.png

之前说过,每取出来一个数,就将PC+1,就到了104的位置,然后再往后偏移3个位置;

从上可见,数据的寻址方式,解释方式有很多很多种,下面我们会对其进行介绍,

image.png

相关文章
|
11月前
|
存储
计算机指令系统介绍
计算机指令系统是计算机系统中非常重要的组成部分,它定义了计算机能够执行的所有操作和指令。指令系统包括指令集、寻址方式、操作码和寄存器等多个方面。下面将详细介绍计算机指令系统的相关内容。 1. 指令集:指令集是计算机能够执行的所有指令的集合。指令集包括数据传输指令、算术运算指令、逻辑运算指令、分支指令、跳转指令等。指令集的设计和实现对计算机的性能和功能具有重要影响。 2. 寻址方式:计算机使用寻址方式来确定指令中的操作数。常见的寻址方式包括直接寻址、寄存器寻址、间接寻址、相对寻址等。不同的寻址方式对于指令的执行速度和效率有着不同的影响。 3. 操作码:操作码是指令中用于确定指令类型和操作的
161 1
|
11月前
【计算机组成原理】计算机组成原理(三)
计算机组成原理(三) 奇偶校验码: 校验原理:
82 0
|
4月前
|
存储 Unix 程序员
计算机组成原理(5)----指令系统(2)
计算机组成原理(5)----指令系统
282 1
|
4月前
|
存储 人工智能 C语言
计算机组成原理(5)----指令系统(1)
计算机组成原理(5)----指令系统
45 1
|
4月前
|
存储 编译器 内存技术
【计算机组成原理】中央处理器
【计算机组成原理】中央处理器
223 1
【计算机组成原理】中央处理器
|
4月前
|
存储
【计算机组成原理】指令系统
【计算机组成原理】指令系统
177 0
【计算机组成原理】指令系统
|
存储 缓存
计算机组成原理(3)存储器
3.1.概述 3.1.1.定义 存储器,用于存储数据和程序。存储器中,以二进制的方式存储数据和程序,存储器由N个存储单元构成,存储单元由N个存储电路组成,这N个存储电路用来保存一个N位二进制数。每个存储单元的编号称为==地址==,存储器中能存放的数据的总位数(byte)称为存储容量,常用单位,KB、MB、GB…..
492 0
|
存储 算法 芯片
|
存储 编译器 图形学
|
存储 算法
计算机组成原理(五)
计算机组成原理(五)
136 0