《计算机组成原理第4章课件.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理第4章课件.ppt(47页珍藏版)》请在三一办公上搜索。
1、第四章 指令系统,4.1 指令系统的发展与性能要求4.2 指令格式4.3 操作数类型 4.4指令和数据的寻址方式4.5 典型指令,第4章 指令系统,4.1 指令系统的发展和性能要求,4.1.1 指令系统的发展4.1.2 对指令系统性能的要求4.1.3 低级语言与硬件结构的关系,4.1.1 指令系统的发展,指令:就是要计算机执行某种操作的命令。从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏指令之分。微指令:微程序级的命令,它属于硬件;机器指令:简称指令,计算机可直接理解并执行。宏指令:由若干条机器指令组成的软件指令,它属于软件;指令系统:一台计算机中所有机器指令的集合。,4.1.
2、1 指令系统的发展,4.1.2对指令系统性能的要求,完善的计算机的指令系统应具备:1、完备性:完备性要求指令系统丰富、功能齐全、使用方便。2、有效性:指利用该指令系统所提供的指令编制的程序能够产生高效率。高效率即占用存储空间小、执行速度快。3、规整性:指令系统的对称性、匀齐性、指令格式与数据格式的一致性。(1)对称性:在指令系统中,所有寄存器和存储单元都可同等对待。(2)匀齐性:是指一种操作性质的指令可以支持各种数据类型。(3)指令的格式与数据格式的一致性:指令长度与数据长度有一定关系,以方便存取和处理。4、兼容性:是指计算机的体系结构设计基本相同,机器之间具有相同的基本结构、数据表示和共同的
3、基本指令集合。,4.1.3低级语言与硬件结构的关系,计算机语言具有高级语言和低级语言之分。低级语言机器语言(二进制语言)、汇编语言(符号语言);面向机器编写,不可移植;可最大程度挖掘机器功能。高级语言(算法语言)C、Fortran、Java、Pascal等;方便描述求解过程,执行性能依赖编译程序;与指令系统无关,故可移植。,表4.1 高级语言与低级语言的性能比较,4.2 指令格式,4.2.1 操作码4.2.2 地址码4.2.3 指令字长度4.2.4 指令助记符4.2.5 指令格式举例,指令格式即指令字用二进制代码表示的结构形式,由操作码字段和地址码字段组成。,表征指令的操作特性与功能,指定参与
4、操作的操作数的地址,4.2.1 操作码,操作码是指明指令操作性质的命令码。它提供指令的操作控制信息。例,加法、减法、乘法、取数、存数等。一般来说,一个n位的操作码最多能表示2n条指令。,4.2.2 地址码,三地址指令,二地址指令,单地址指令,零地址指令,1零地址指令,零地址指令中只有操作码而无地址码,其指令格式为:不需操作数的控制型指令,如HALT、WAIT、NOP等。,2.一地址指令(单地址指令),一地址指令的格式为:A可以是存储器地址,也可是寄存器地址。一地址指令有两种情况 单操作数指令:如INC、DEC、NEG等,只需一个操作数,其功能为:OP(A)A。双操作数指令:另一个操作数通常采用
5、隐含寻址的方法,将操作数隐含在约定的累加器AC中,其指令功能为:(AC)OP(A)AC。一地址指令长度短,指令执行速度快对于字长较短的微、小型机,是一种常用的指令格式。,3二地址指令,二地址指令的格式为:二地址指令功能为:(A1)OP(A2)A1A1、A2可以是存储器地址,也可是寄存器地址。,存储器存储器型(S-S型)指令:A1、A2均为存储器地址的二地址指令。寄存器寄存器型(R-R型)指令:A1、A2均为寄存器地址的二地址指令。R-R型指令执行速度快。寄存器存储器型(R-S型)指令:A1、A2中一个是寄存器地址,另一个是存储器地址的二地址指令。,二地址指令的几种形式,三地址指令格式:三地址指
6、令功能为:(A1)OP(A2)A3A1为被操作数地址,也称源操作数地址;A2为操作数地址,也称终点操作数地址;A3为存放结果的地址。A1、A2、A3可以是存储器地址,也可是寄存器地址。三地址指令编程方便,结果不影响运算操作数。但指令长度较长,一般在字长较长的大、中型机中使用。,4三地址指令,4.2.3指令字长度,指令字长度:一个指令字中包含二进制代码的位数。机器字长:计算机能直接处理的二进制数据的位数,它决定了计算机的运算精度。,其中L为指令字长度,N为机器字长度,4.2.4指令助记符,指令助记符:硬件只能识别1和0,所以须采用二进制操作码,为便于书写和阅读程序,每条指令用3个或4个英文缩写字
7、母来表示。,表4.2典型的指令助记符,例1指令格式如下所示,其中OP为操作码,试分析指令格式的特点。(假设机器字长16位)15 9 7 4 3 0,解:(1)单字长二地址指令。(2)操作码字段OP可以指定27128条指令。(3)源寄存器和目标寄存器都是通用寄存器,所以是 RR型指令,两个操作数均在寄存器中。,例2 指令格式如下所示,试分析指令格式特点。15 10 7 4 3 0,(1)双字长二地址指令,用于访问存储器(2)操作码字段OP为6位,可以指定64种操作(3)一个操作数在源寄存器(共16个),另一个操作数在存储器中(由变址寄存器和位移量决定),所以是RS指令,4.3 操作数类型,4.3
8、.1 一般的数据类型4.3.2 Pentium数据类型4.3.3 Power PC数据类型,4.3.1 一般的数据类型,地址数据:地址实际上也是一种形式的数据。数值数据:计算机中普遍使用的三种类型的数值数据。定点数 浮点数 压缩的十进制数字符数据:文本数据或字符串,目前广泛使用ASCII码。逻辑数据:一个单元中有几位二进制bit项组成,每个bit的值可以是1或0。当数据以这种方式看待时,称为逻辑性数据。,4.4 指令和数据的寻址方式,4.4.1 指令的寻址方式4.4.2 操作数寻址方式4.4.3 寻址方式举例,寻址方式:形成指令或操作数地址的方式 寻址方式的类别 指令寻址方式:用于形成指令在内
9、存中的地址 数据(操作数)寻址方式:用于形成操作数在内存中的地址,4.4.1指令的寻址方式,1.顺序寻址方式 PC1PC设置程序计数器(或称指令计数器)PC,每执行一条指令,计数器加1;把计数器内容作为指令的存储地址。2.跳跃寻址方式 当程序转移时,修改PC的内容下条指令的地址,不是计数器给出的,而是当前指令指定的。程序跳跃后,按新的指令地址开始顺序执行,指令计数器的内容相应改变。,指令的顺序寻址方式,指令的跳跃寻址方式(程序的控制转移),play,4.4.2 操作数寻址方式,操作数的寻址:把操作数的形式地址,根据间址和变址等组合变换为操作数有效地址的过程。形式地址:指令中给出的地址。(不一定
10、是实际地址)有效地址:操作数的实际地址。如寄存器编号或存储单元地址。,操作数,操作数寻址方式,常用数据寻址方式,1.隐含寻址:在指令中不明显地给出操作数的地址2.立即寻址:指令的地址字段直接给出操作数本身,DataA,操作码 形式地址,例1:单地址的移位指令格式为,F为标志位,当F1,操作数进行右移;当F0时,操作数进行左移。,D是一个操作数,例2:Intel 8086指令:MOV AX,2000H;将数据2000H存入累加器AX中,play,3.直接寻址,例:Intel 8086指令:MOV AX,2000H 将有效地址为2000H的内存单元的内容读入AX中。,指令字中直接给出操作数在内存的
11、地址。形式地址有效地址,AEA,4间接寻址,间接寻址意味着指令的地址码部分给出的地址A不是操作数的地址,而是存放操作数地址的主存单元的地址,简称操作数地址的地址。,至少需要两次访问主存储器才能取出操作数,EA(A),5.寄存器寻址,例:Intel 8086指令:MOV AL,BL;ALBL,寄存器寻址方式:操作数放在CPU的通用寄存器中。此时指令中给出的操作数地址是通用寄存器的编号。,6.寄存器间接寻址,寄存器间接寻址方式:指令格式中的寄存器内容不是操作数,而是操作数的地址,该地址指明的操作数在内存中。,例:Intel 8086指令:MOV AL,BX。设 BX2000H,(2000H)80H
12、,则 AL80H,7.偏移寻址,直接寻址和寄存器间接寻址方式的结合;,OP,有两个地址字段:形式地址A,某个专用寄存器。,EA=A+(R),三种偏移寻址是相对寻址、基址寻址、变址寻址。,相对寻址方式,程序计数器PC的内容加上地址字段中A的值形成指令的目的地址,EA(PC)A,采用相对寻址方式,程序员无须用指令的绝对地址编程,所编程序可以放在内存任何地方。,基址寻址,指令的地址码部分给出偏移量D,而基准地址放在基址寄存器Rb中,最后操作数的有效地址为:EA(Rb)D。,A可正可负!,优点:可以扩大寻址能力。基址寄存器的位数可以设置得很长,从而可以在较大的存储空间中寻址。,变址寻址,基准地址A与C
13、PU内某特定的变址寄存器Rx的内容相加,得有效地址:EAA(Rx)。,最典型的应用是将地址A作为基准地址,而将变址寄存器Rx中的内容作为修改量,实现程序块的规律性变化。,8.段寻址方式,段寻址方式的实质还是基址寻址微机中采用,目的是扩大寻址范围。,9.堆栈寻址,堆栈有寄存器堆栈和存储器堆栈两种形式,它们都以先进后出的原理存储数据。数据的存取都与栈顶打交道,需要堆栈指示器(寄存器)。,操作数寻址方式,其中I为间接寻址标志位,X为寻址模式字段,D为偏移量字段。通过I,X,D的组合,可构成下表所示的寻址方式。请写出六种寻址方式的名称。,例3一种二地址RS型指令的结构如下所示:6位 4位 1位2位 1
14、6位,解:(1)直接寻址,(2)相对寻址,(3)变址寻址,(4)寄存器间接寻址,(5)间接寻址,(6)基址寻址,例4 某16位机器所使用的指令格式和寻址方式如下所示,该机有两个20位基址寄存器,四个16位变址寄存器,十六个16位通用寄存器,指令汇编格式中的S(源),D(目标)都是通用寄存器,M是主存中的一个单元。三种指令的操作码分别是MOV(OP)(A)H,STO(OP)(1B)H,LAD(OP)(3C)H。MOV是传送指令,STA为写数指令,LDA为读数指令。,(F0F1)H(3CD2)H(2856)H(6FD6)H(1C2)H,要求:分析三种指令的指令格式与寻址方式特点。CPU完成哪一种操
15、作所花时间最短?哪一种操作所花时间最长?第二种指令的执行时间有时会等于第三种指令的执行时间吗?下列指令字分别代表什么操作?如果有编码不正确,如何改正才能成为合法指令?,解:第一种指令是单字长二地址指令,RR型。寻址方式寄存器寻址。第二种指令是双字长二地址指令,RS型。寻址方式基址寻址或变址寻址。第三种指令是双字长二地址指令,RS型。寻址方式直接寻址。,时间最短,时间最长,与二时间不等,节省有效地址运算时间,(3)双字长,高6位(OP)1111003CH,是LAD指令,编码正确。F0 F 13CD2H,含义是把主存13CD2H地址单元的内容取至15号寄存器。单字长,高6位(OP)001010AH
16、,是MOV指令,编码正确。28 5 6H,含义是把6号源寄存器的内容传送至5号目标寄存器。单字长,是MOV指令,高6位(OP)011011 AH,编码错误。28D6H单字长,是MOV指令,高6位(OP)000000 AH,编码错误。28C2H,MOV S,D,STO S,M,LAD M,D,4.5 典型指令,4.5.1 指令的分类4.5.2 基本指令系统4.5.3 精简指令系统,4.5.1 指令的分类,1.数据传送指令实现主存与寄存器、寄存器与寄存器之间的数据传送,主要包括取数指令、存数指令、传送指令、成组传送指令、字节交换指令、清累加器指令、堆栈操作指令等。2.算术运算指令实现加、减、乘、除
17、等运算的指令,以及求反、求补指令,算术移位指令等。3.逻辑运算指令实现逻辑与、或、非、异或,以及逻辑移位等操作的指令,4.5.1 指令的分类,4.程序控制转移指令条件转移指令。转移条件有,进位、结果0、结果负、结果溢出、结果奇偶等,这些标志存储在状态寄存器中。无条件转移指令、转子程序指令、返主程序指令等。绝对转移、相对转移。5.输入输出指令启动外围设备,检查测试外设的工作状态,并实现外设和CPU之间,或外设与外设之间的信息传送,4.5.1 指令的分类,6.字符串处理指令非数值处理指令,包括字符串的传送、转换、比较、查找、替换等。7.特权指令具有特殊权限的指令,只用于操作系统或其他系统软件,一般
18、不直接提供给用户使用。8.其他指令 状态寄存器置位、复位指令、测试指令、暂停指令,空操作指令,以及其他一些系统控制用的特殊指令。,复杂指令系统计算机 CISC(Complex Instruction Set Computer),靠增强指令的功能,增加指令系统的复杂程度来提高计算机系统的性能。特点:(1)指令系统复杂庞大,指令数目一般达200300条。(2)指令格式多,指令字长不固定,使用多种寻址方式。(3)可访存指令不受限制。(4)大多数采用微程序控制器。CISC中,通过增强指令系统的功能,简化了软件,增加了硬件的复杂程度。然而指令复杂了,指令的执行时间必然加长,从而使整个系统的执行时间反而增
19、加 20%和80%规律:CISC中大约有20%的指令使用频率高,占据了80%的处理机时间,而有80%的不常用指令只占用处理机的20%时间。,4.5.3 精简指令系统,精简指令集计算机RISC(Reduced Instruction Set Computer)靠精简指令系统,简化指令功能及优化的编译程序来提高计算机系统的性能。特点:选取使用频率最高的一些简单指令,指令条数少;指令长度固定,指令格式种类少;只有取数存数指令访问存储器,其余指令的操作都在寄存器之间进行。RISC采用流水线技术;简单而统一格式的指令译码;大部分指令可以单周期执行;简单的寻址方式。,本章小结,一台计算机中所有机器指令的集
20、合称为该计算机的指令系统。指令系统是表征一台计算机性能的重要因素。指令格式是指令字用二进制代码表示的结构形式,通常由操作码字段和地址码字段组成。操作码字段表征指令的操作特性与功能,而地址码字段指示操作数的地址。目前多采用二地址、单地址、零地址混合方式的指令格式。指令字长度分为:单字长、半字长、双字长三种形式。高档微型机中目前多采用32位长度的单字长形式。形成指令地址的方式,称为指令寻址方式。有顺序寻址和跳跃寻址两种,由指令计数器PC来跟踪。,本章小结,形成操作数地址的方式,称为数据寻址方式。包括隐含寻址、立即寻址、直接寻址、间接寻址、寄存器寻址、寄存器间接寻址、相对寻址、基址寻址、变址寻址、段
21、寻址、堆栈寻址等。堆栈是一种特殊的数据寻址方式,采用“先进后出”原理。按结构不同,分为寄存器堆栈和存储器堆栈。不同机器有不同的指令系统。一个较完善的指令系统应当包含数据传送类指令、算术运算类指令、逻辑运算类指令、程序控制类指令、I/O类指令、字符串类指令、系统控制类指令。RISC指令系统是CISC指令系统的改进,其最大特点是:指令条数少;指令长度固定,指令格式和寻址种类少;只有取数存数指令访问存储器,其余指令均在寄存器之间进行。,某机指令格式如图所示:图中X为寻址特征位,且X=0时,不变址;X=1时,用变址寄存器X1进行变址;X=2时,相对寻址。设(PC)=1234H,(X1)=0037H,请确定下列指令的有效地址。(1)2493H(2)3214H(3)4530H,0011 0010 00010100,X2,相对寻址。有效地址=(PC)D1234H0014H1248H,0093H,0067H,(1)X=0,E=D=93H,