首页 理论教育 计算机组成原理-指令格式及设计分析

计算机组成原理-指令格式及设计分析

时间:2023-10-31 理论教育 版权反馈
【摘要】:如空操作指令、停机指令等。图4-4二地址指令格式这是最常见的指令格式。一台计算机选择怎样的指令格式,涉及多方面因素,一般要求指令的字长要尽量短一些,以得到时间和空间上的优势。一个指令码中包含的二进制代码位数,称为指令字长。另外,指令格式的设计还与如何选定指令中操作数地址的位数有关。

计算机组成原理-指令格式及设计分析

一条指令中含有的操作数地址不一定只有一个。随着指令功能的不同,操作数地址可能是两个或多个。例如加减法运算,一般要求有两个操作数地址。但若再考虑操作运算结果的存放地址,就需要有3个地址,若继续考虑本条指令完成以后下一条指令的地址,则需要4个地址。

指令字中操作数地址字段的位数取决于指令操作所需要的操作数地址个数和每个操作数地址的位数。所以,一个指令的字长应满足下面的等式:

指令字长=操作码的位数+(操作数地址个数)×(操作数地址码位数)

根据指令中地址码部分所给出的地址个数,指令可分为以下几种。

1.零地址指令格式

这是一种只有操作码(OP),而没有操作数地址部分的指令,如图4-2所示。

图4-2 零地址指令格式

这种指令有两种可能:

(1)无须任何操作数。如空操作指令、停机指令等。

(2)所需的操作数是默认的。如堆栈结构计算机的运算指令,所需的操作数默认在堆栈中,由堆栈指针隐含指出。

2.一地址指令格式

一地址指令常称为单操作数指令,指令中只给出一个地址,如图4-3所示。

图4-3 一地址指令格式

一地址指令也有两种可能:

(1)指令中给出的一个地址既是操作数的地址,又是操作结果的存储地址。(www.xing528.com)

(2)在某些计算机中,指令中的一个地址提供一个操作数,另一个操作数是由机内硬件寄存器“隐含”自动提供的。所谓“隐含”是指此操作数在指令中不出现,而是按照事先约定由默认寄存器提供,运算结果仍送到寄存器中。因为这个寄存器在连续运算时,保存着多条指令连续操作的累计结果,故称为累加器(ACC)。

3.二地址指令格式

二地址指令常称为双操作数指令,它有两个地址码字段A1和A2,分别指明参与操作的两个数在存储器或寄存器中的地址,其中地址A1(也可能是A2)兼作存放操作结果的地址,如图4-4所示。

图4-4 二地址指令格式

这是最常见的指令格式。常把保存操作前原来操作数的地址称为源点地址(SS)或源操作数地址,把保存指令执行结果的地址称为终点地址或目的地址(DD)。

4.三地址指令格式

三地址指令字中有三个操作数地址A1、A2和A3,A1为一个操作数地址,A2为另一个操作数地址,A3为存放操作结果地址,如图4-5所示。

图4-5 三地址指令格式

5.多地址指令格式

这类指令有3个以上的操作数地址,指令码长,在某些性能较高的大、中型机中采用,如字符串处理指令、向量和矩阵运算指令等。为了描述一批数据,指令中需要多个地址来指出数据存放的首地址、长度等信息。例如CDC-STAR-100的矩阵运算指令,它有7个地址字段,用于指出运算的两个矩阵存储情况及结果的存放情况。

一台计算机选择怎样的指令格式,涉及多方面因素,一般要求指令的字长要尽量短一些,以得到时间和空间上的优势。指令字长越短,意味着要占用的存储器空间就越小,而且存取指令所需要的时间就可能越少。在同一个存储器的同一传输速率下,每秒钟从存储器中能读出的短指令数量肯定会比长指令的数量多,从而使处理器执行指令的速度加快。

指令也必须有足够的长度以利于增加信息量。一个指令码中包含的二进制代码位数,称为指令字长。尽管希望指令字长尽量短,但也必须满足指令系统的要求,即至少要具有必要的操作码位数与操作数地址字段的位数。随着指令字长的增加,操作码和操作数地址可使用的位数也成比例地增加,每条指令的内容也就越丰富。再者,指令字长一般应是机器字符长度的整数倍,以便于存储系统的管理。若机器中字符码长度是L位,则指令字长最好是L、2L、4L或8L等。目前普遍采用的.ASCII字符编码(7位)加一个奇偶校验位,字符长度L为8位(一个字节)。指令字长一般为8位、16位、32位和64位。

另外,指令格式的设计还与如何选定指令中操作数地址的位数有关。例如,对同一容量(如64KB)的存储器,若取存储单元为一字节长,则需要16位地址码,若存储单元长度为32位,则只需14位地址码。对比一下会发现各有利弊:前者对字符操作方便,但地址码位数多,后者地址码位数少,但字符操作困难,分辨率低。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈