1、第四章第四章指令系统指令系统4.1指令系统的发展与性能要求指令系统的发展与性能要求4.2指令格式指令格式4.3操作数类型操作数类型4.4指令和数据的寻址方式指令和数据的寻址方式4.5典型指令典型指令返回1.4.1指令系统的发展与性能要求指令系统的发展与性能要求1、指令在计算机系统中的地位、指令在计算机系统中的地位(1)是软件和硬件分界面的一个主要标志)是软件和硬件分界面的一个主要标志l硬件设计人员采用各种手段实现它;硬件设计人员采用各种手段实现它;l软件设计人员则利用它编制各种各样的系统软件和软件设计人员则利用它编制各种各样的系统软件和应用软件应用软件(2)是硬件设计人员和软件设计人员之间的分
2、)是硬件设计人员和软件设计人员之间的分界面,也是他们之间沟通的桥梁。界面,也是他们之间沟通的桥梁。2.4.1指令系统的发展与性能要求指令系统的发展与性能要求2、指令系统基本概念、指令系统基本概念l指令:就是要计算机执行某种操作的命令。指令:就是要计算机执行某种操作的命令。l微指令是微程序级的命令,它属于硬件;微指令是微程序级的命令,它属于硬件;l宏指令:由若干条机器指令组成的软件指令,它属于软件;宏指令:由若干条机器指令组成的软件指令,它属于软件;l机器指令:介于微指令与宏指令之间,通常简称为指令,每一机器指令:介于微指令与宏指令之间,通常简称为指令,每一条指令可完成一个独立的算术运算或逻辑运
3、算操作。条指令可完成一个独立的算术运算或逻辑运算操作。l本章所讨论的指令,是机器指令。本章所讨论的指令,是机器指令。l一台计算机中所有机器指令的集合,称为这台计算机的指令系一台计算机中所有机器指令的集合,称为这台计算机的指令系统。统。l指令系统是表征一台计算机性能的重要因素,它的格式与功能指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也直接影响到系统软件,不仅直接影响到机器的硬件结构,而且也直接影响到系统软件,影响到机器的适用范围影响到机器的适用范围3.4.1指令系统的发展与性能要求指令系统的发展与性能要求3、发展情况、发展情况l复杂指令系统计算机,简
4、称复杂指令系统计算机,简称CISC。但是如。但是如此庞大的指令系统不但使计算机的研制周期此庞大的指令系统不但使计算机的研制周期变长,难以保证正确性,不易调试维护,而变长,难以保证正确性,不易调试维护,而且由于采用了大量使用频率很低的复杂指令且由于采用了大量使用频率很低的复杂指令而造成硬件资源浪费。而造成硬件资源浪费。l精简指令系统计算机:简称精简指令系统计算机:简称RISC,人们又,人们又提出了便于提出了便于VLSI技术实现的精简指令系统计技术实现的精简指令系统计算机。算机。4.4.1指令系统的发展与性能要求指令系统的发展与性能要求4、为什么会出现为什么会出现CISC到到RISC的转变的转变l
5、2/8规则规则l控制器设计难度下降控制器设计难度下降5.4.1指令系统的发展与性能要求指令系统的发展与性能要求5、对指令系统的要求、对指令系统的要求l完备性:完备性是指用汇编语言编写各种程序时,指令系统直接提供完备性:完备性是指用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现。完备性要求指令系统丰富、的指令足够使用,而不必用软件来实现。完备性要求指令系统丰富、功能齐全、使用方便。功能齐全、使用方便。l有效性:有效性是指利用该指令系统所编写的程序能够高效率地运行。有效性:有效性是指利用该指令系统所编写的程序能够高效率地运行。高效率主要表现在程序占据存储空间小、执行速度
6、快。高效率主要表现在程序占据存储空间小、执行速度快。l规整性:规整性包括指令系统的对称性、匀齐性、指令格式和数据格规整性:规整性包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。对称性是指:在指令系统中所有的寄存器和存储器单元式的一致性。对称性是指:在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式;匀齐性是指:一都可同等对待,所有的指令都可使用各种寻址方式;匀齐性是指:一种操作性质的指令可以支持各种数据类型,如算术运算指令可支持字种操作性质的指令可以支持各种数据类型,如算术运算指令可支持字节、字、双字整数的运算,十进制数运算和单、双精度浮点数运算等;节、
7、字、双字整数的运算,十进制数运算和单、双精度浮点数运算等;指令格式和数据格式的一致性是指:指令长度和数据长度有一定的关指令格式和数据格式的一致性是指:指令长度和数据长度有一定的关系,以方便处理和存取。例如指令长度和数据长度通常是字节长度的系,以方便处理和存取。例如指令长度和数据长度通常是字节长度的整数倍。整数倍。l兼容性:系列机各机种之间具有相同的基本结构和共同的基本指令集,兼容性:系列机各机种之间具有相同的基本结构和共同的基本指令集,因而指令系统是兼容的,即各机种上基本软件可以通用。但由于不同因而指令系统是兼容的,即各机种上基本软件可以通用。但由于不同机种推出的时间不同,在结构和性能上有差异
8、,做到所有软件都完全机种推出的时间不同,在结构和性能上有差异,做到所有软件都完全兼容是不可能的,只能做到兼容是不可能的,只能做到“向上兼容向上兼容”,即低档机上运行的软件可以,即低档机上运行的软件可以在高档机上运行。在高档机上运行。6.4.1指令系统的发展与性能要求指令系统的发展与性能要求6、低级语言与高级语言的比较、低级语言与高级语言的比较比较内容高级语言低级语言1对程序员的训练要求(1)通用算法(2)语言规则(3)硬件知识有较少不要有较多要2对机器独立的程度独立不独立3编制程序的难易程度易难4编制程序所需时间短较长5程序执行时间较长短6编译过程中对计算机资源的要求多少7.4.2指令格式指令
9、格式l影响计算机指令格式的因素影响计算机指令格式的因素l机器的字长机器的字长l存储器的容量存储器的容量l指令的功能指令的功能l指令能反映以下信息指令能反映以下信息l做什么操作做什么操作l如果需要操作数,从哪里取如果需要操作数,从哪里取l结果送哪里结果送哪里l下一条指令从哪里取下一条指令从哪里取l所以指令格式包括两个方面:所以指令格式包括两个方面:操作码字段操作码字段地址码字段地址码字段8.4.2指令格式指令格式一、操作码一、操作码l设计计算机时,对指令系统的每一条指令都要规定一个操作码。设计计算机时,对指令系统的每一条指令都要规定一个操作码。指令的操作码指令的操作码OP表示该指令应进行什么性质
10、的操作,如进行加表示该指令应进行什么性质的操作,如进行加法、减法、乘法、除法、取数、存数等等。不同的指令用操作法、减法、乘法、除法、取数、存数等等。不同的指令用操作码字段的不同编码来表示,每一种编码代表一种指令。码字段的不同编码来表示,每一种编码代表一种指令。l组成操作码字段的位数一般取决于计算机指令系统的规模。较组成操作码字段的位数一般取决于计算机指令系统的规模。较大的指令系统就需要更多的位数来表示每条特定的指令。大的指令系统就需要更多的位数来表示每条特定的指令。l等长(指令规整,译码简单)等长(指令规整,译码简单)l例如例如IBM370机,该机字长机,该机字长32位,位,16个通用寄存器个
11、通用寄存器R0R15,共有,共有183条指令;指令的长度可以分为条指令;指令的长度可以分为16位、位、32位位和和48位等几种,所有指令的操作码都是位等几种,所有指令的操作码都是8位固定长度。位固定长度。l固定长度编码的主要缺点是:信息的冗余极大,使程序的固定长度编码的主要缺点是:信息的冗余极大,使程序的总长度增加。总长度增加。9.二、地址码二、地址码l根根据据一一条条指指令令中中有有几几个个操操作作数数地地址址,可可将将该该指指令称为几操作数指令或几地址指令。令称为几操作数指令或几地址指令。三地址指令三地址指令二地址指令二地址指令单地址指令单地址指令零地址指令零地址指令操作码(操作码(4 4
12、位)位)1 1(6 6位)位)操作码(操作码(4 4位)位)1 1(6 6位)位)2 2(6 6位)位)操作码(操作码(4 4位)位)1 1(6 6位)位)2 2(6 6位)位)操作码操作码A3A3(6 6位)位)10.二、地址码二、地址码l三地址指令三地址指令l指令格式如下:指令格式如下:l操作码操作码第一操作数第一操作数A1第二操作数第二操作数A2结果结果A3l功能描述:功能描述:l(A1)(A2)A3l(PC)+1PCl这种格式的指令长度比较长,只在字长较长的大、这种格式的指令长度比较长,只在字长较长的大、中型机中使用,而小型、微型机中很少使用。中型机中使用,而小型、微型机中很少使用。A
13、3A3A2A2A1A111.二、地址码二、地址码l二地址指令二地址指令l其格式如下:其格式如下:ll操作码操作码第一操作数第一操作数A1第二操作数第二操作数A2l功能描述:功能描述:l(A1)(A2)A1l(PC)+1PCl二地址指令在计算机中得到了广泛的应用,但是在二地址指令在计算机中得到了广泛的应用,但是在使用时有一点必须注意:指令执行之后,使用时有一点必须注意:指令执行之后,A1中原存中原存的内容已经被新的运算结果替换了。的内容已经被新的运算结果替换了。A2A2A1A112.二、地址码二、地址码l二地址地址根据操作数的物理位置分为:二地址地址根据操作数的物理位置分为:lSS存储器存储器-
14、存储器类型存储器类型lRS寄存器寄存器-存储器类型存储器类型lRR寄存器寄存器-寄存器类型寄存器类型慢13.二、地址码二、地址码l一地址指令一地址指令l指令格式为:指令格式为:l操作码操作码第一操作数第一操作数A1l功能描述:功能描述:l(AC)(A1)A1l(PC)+1PCl单操作数运算指令,如单操作数运算指令,如“+1”、“-1”、“求反求反”l指令中给出一个源操作数的地址指令中给出一个源操作数的地址 A1A114.二、地址码二、地址码l零地址指令零地址指令l其格式为:其格式为:l操作码操作码l“停机停机”、“空操作空操作”、“清除清除”等控制类指令。等控制类指令。15.三、指令长度三、指
15、令长度l概念概念l指令字长度(一个指令字包含二进制代码的位数)指令字长度(一个指令字包含二进制代码的位数)l机器字长:计算机能直接处理的二进制数据的位数。机器字长:计算机能直接处理的二进制数据的位数。l单字长指令单字长指令l半字长指令半字长指令l双字长指令双字长指令l多字长指令多字长指令的优缺点的优缺点l优点提供足够的地址位来解决访问内存任何单元的寻址问题优点提供足够的地址位来解决访问内存任何单元的寻址问题;l缺点必须两次或多次访问内存以取出一整条指令,降低了缺点必须两次或多次访问内存以取出一整条指令,降低了CPU的的运算速度,又占用了更多的存储空间。运算速度,又占用了更多的存储空间。l指令系
16、统中指令采用指令系统中指令采用等长指令等长指令的优点:各种指令字长度是相等的,的优点:各种指令字长度是相等的,指令字结构简单,且指令字长度是不变的指令字结构简单,且指令字长度是不变的;l采用采用非等长指令非等长指令的的优点:各种指令字长度随指令功能而异,的的优点:各种指令字长度随指令功能而异,结结构灵活,能充分利用指令长度,但指令的控制较复杂构灵活,能充分利用指令长度,但指令的控制较复杂。16.五、指令助记符五、指令助记符l由于硬件只能识别由于硬件只能识别1和和0,所以采用二进制操作,所以采用二进制操作码是必要的,但是我们用二进制来书写程序却码是必要的,但是我们用二进制来书写程序却非常麻烦。非
17、常麻烦。l为了便于书写和阅读程序,每条指令通常用为了便于书写和阅读程序,每条指令通常用3个或个或4个英文缩写字母来表示。这种缩写码叫个英文缩写字母来表示。这种缩写码叫做指令助记符做指令助记符用用34个英文字母来表示操作码,一般为英文缩写个英文字母来表示操作码,一般为英文缩写不同的计算机系统,规定不一样不同的计算机系统,规定不一样必须用汇编语言翻译成二进制代码必须用汇编语言翻译成二进制代码17.六、指令格式举例六、指令格式举例l8位微型计算机的指令格式位微型计算机的指令格式l如如8088,字长,字长8位,指令结构可变位,指令结构可变l包括单字长指令、双字长指令和三字长指令包括单字长指令、双字长指
18、令和三字长指令l操作码长度固定操作码长度固定lPDP/11系列机的指令格式系列机的指令格式l字长字长16位位l单字长指令单字长指令l操作码字段不固定操作码字段不固定18.七七、Pentium指令格式指令格式l指令长度可变,最短指令长度可变,最短1个字节,最长个字节,最长12个字节,典型的个字节,典型的CISC指指令系统令系统l由可选前缀(由可选前缀(04)、操作码()、操作码(12)、)、一个由一个由mod-R/M字节字节和一个和一个SIB(ScaleIndexBase)比例变址字节组成的地址指)比例变址字节组成的地址指定器定器、一个可选的位移量(、一个可选的位移量(04)和一个可选的立即数字
19、段)和一个可选的立即数字段(04)构成。)构成。指令前缀段取代操作数长度取代地址长度取代操作码ModReg或操作码R/MSIB位移量立即数19.七七、Pentium指令格式指令格式l指令前缀中的指令前缀中的重复前缀重复前缀指定串的重复操作,这样使指定串的重复操作,这样使Pentium处理串比软循环快得多。处理串比软循环快得多。lLOCK前缀前缀用于多用于多CPU环境中对共享存储器的排他性环境中对共享存储器的排他性访问访问l段取代用于改变默认段寄存器的情况段取代用于改变默认段寄存器的情况l操作数长度取代和地址长度取代用于在保护模式下决操作数长度取代和地址长度取代用于在保护模式下决定操作数和指令的
20、长度定操作数和指令的长度(32位位/16位位)l以下以下4个指令前缀都是可选的,分别为个指令前缀都是可选的,分别为0或或1个字节个字节指令前缀段取代操作数长度取代地址长度取代20.七七、Pentium指令格式指令格式l操作码是必须的,操作码是必须的,12个字节个字节lMod、Reg、R/M为共为共1个字节,是可选的。个字节,是可选的。lmod-R/M指定的操作数是在指定的操作数是在R中还是在中还是在M中。中。lmod(2位)位)R/M(3位)的位)的32种值构成了种值构成了8种寄存种寄存器方式和器方式和24种变址方式(参考汇编语言教材);种变址方式(参考汇编语言教材);lReg(3位)指定另一
21、个操作数(寄存器)。位)指定另一个操作数(寄存器)。操作码ModReg或操作码R/MSIB位移量立即数1个字节1个字节21.七七、Pentium指令格式指令格式lS、I、B共共1个字节,分别是比例系数、变址寄存器号、个字节,分别是比例系数、变址寄存器号、基址寄存器号,可选。基址寄存器号,可选。l位移量:可以是位移量:可以是0,1,2,4个字节个字节l立即数:可以是立即数:可以是0,1,2,4个字节个字节l举例举例P110例例1-例例2操作码ModReg或操作码R/MSIB位移量立即数22.4.3操作数类型操作数类型l操作数类型操作数类型l地址数据地址数据:地址实际上也是一种形式的数据。地址实际
22、上也是一种形式的数据。l数值数据数值数据:计算机中普遍使用的三种类型的数值数据。计算机中普遍使用的三种类型的数值数据。(1)定定点整数或定点小数点整数或定点小数;(2)浮点数浮点数;(3)压缩十进制数压缩十进制数l字符数据字符数据:文本数据或字符串,目前广泛使用文本数据或字符串,目前广泛使用ASCII码。码。l逻辑数据逻辑数据:一个单元中有几位二进制一个单元中有几位二进制bit项组成,每个项组成,每个bit的值的值可以是可以是1或或0。当数据以这种方式看待时,称为逻辑性数据。当数据以这种方式看待时,称为逻辑性数据。lPentium数据类型数据类型(见见P111表表4.4)l常规数据类型常规数据
23、类型l整数数据类型整数数据类型l.23.4.4指令和数据的寻址方式指令和数据的寻址方式l研究问题研究问题l确定本条指令中各操作数的地址确定本条指令中各操作数的地址l下一条指令的地址下一条指令的地址l寻址方式是指寻址方式是指CPU根据指令中给出的地址码字根据指令中给出的地址码字段寻找相应的操作数的方式,它与计算机硬件段寻找相应的操作数的方式,它与计算机硬件结构紧密相关,而且对指令的格式和功能有很结构紧密相关,而且对指令的格式和功能有很大的影响。大的影响。24.4.4指令和数据的寻址方式指令和数据的寻址方式l指令的寻址方式指令的寻址方式l顺序方式顺序方式lPCl跳跃方式跳跃方式25.4.4指令和数
24、据的寻址方式指令和数据的寻址方式l操作数的寻址方式操作数的寻址方式l形成操作数有效地址的方法,称为寻址方形成操作数有效地址的方法,称为寻址方式。式。l操作数通常放在哪儿呢?操作数通常放在哪儿呢?26.4.4指令和数据的寻址方式指令和数据的寻址方式l操作数包含在指令中;操作数包含在指令中;l操作数包含在操作数包含在CPU的某一个内部寄存器中;的某一个内部寄存器中;l操作数包含在主存储器中;操作数包含在主存储器中;l操作数包含在操作数包含在I/O设备的端口中设备的端口中l根据操作数放在不同的地方,从而派生各种不根据操作数放在不同的地方,从而派生各种不同的寻址方式,往往不同的计算机具有不同的同的寻址
25、方式,往往不同的计算机具有不同的寻址方式。寻址方式。27.28.1、隐含寻址、隐含寻址l指令中隐含着操作数的地址指令中隐含着操作数的地址l如某些运算,隐含了累加器如某些运算,隐含了累加器AC作为源和目的寄存器作为源和目的寄存器l如如8086汇编中的汇编中的STC指令,设置标志寄存器的指令,设置标志寄存器的C为为129.2、立即寻址、立即寻址l立即寻址是一种特殊的寻址方式,指令中在操作码字立即寻址是一种特殊的寻址方式,指令中在操作码字段后面的部分不是通常意义上的操作数地址,而是操段后面的部分不是通常意义上的操作数地址,而是操作数本身,也就是说数据就包含在指令中,只要取出作数本身,也就是说数据就包
26、含在指令中,只要取出指令,就取出了可以立即使用的操作数,因此,这样指令,就取出了可以立即使用的操作数,因此,这样的操作数被称为立即数。的操作数被称为立即数。l指令格式:操作码指令格式:操作码操作数操作数A30.2、立即寻址、立即寻址l特点:在取指令时,操作码和操作数被同时取出,不特点:在取指令时,操作码和操作数被同时取出,不必再次访问存储器,从而提高了指令的执行速度。必再次访问存储器,从而提高了指令的执行速度。l但是,因为操作数是指令的一部分,不能被修改;但是,因为操作数是指令的一部分,不能被修改;l而且对于定而且对于定长指令格式,操作数的大小将受到指令长长指令格式,操作数的大小将受到指令长度
27、的限制,所以这种寻址方式灵活性最差度的限制,所以这种寻址方式灵活性最差l通常用于给某一寄存器或主存单元赋初值,或者用于通常用于给某一寄存器或主存单元赋初值,或者用于提供一个常数。提供一个常数。31.3、直接寻址直接寻址l指令中地址码字段给出的地址指令中地址码字段给出的地址A就是操作数的就是操作数的有效地址有效地址EA(EffectiveAddress),即,即EAA。32.3、直接寻址直接寻址l操作数地址是不能修改的,与程序本身所在的位置操作数地址是不能修改的,与程序本身所在的位置无关,所以又叫做绝对寻址方式无关,所以又叫做绝对寻址方式l在早期的计算机中,主存储器的容量较小,指令中在早期的计算
28、机中,主存储器的容量较小,指令中地址码的位数要求不长,采用直接寻址方式简单快地址码的位数要求不长,采用直接寻址方式简单快速,也便于硬件实现,因此,常被作为主要的寻址速,也便于硬件实现,因此,常被作为主要的寻址方式。方式。l但在现代,随着计算机主存容量的不断扩大,所需但在现代,随着计算机主存容量的不断扩大,所需的地址码将会越来越长。指令中地址码的位数将不的地址码将会越来越长。指令中地址码的位数将不能满足整个主存空间寻址的要求,因此直接寻址方能满足整个主存空间寻址的要求,因此直接寻址方式受到了很大的限制。另外,在指令的执行过程中,式受到了很大的限制。另外,在指令的执行过程中,为了取得操作数,必须进
29、行访存操作,降低了指令为了取得操作数,必须进行访存操作,降低了指令的执行速度。的执行速度。33.4、间接寻址间接寻址l间接寻址意味着指令的地址码部分给出的间接寻址意味着指令的地址码部分给出的地址地址A不是操作数的地址,而是存放操作数不是操作数的地址,而是存放操作数地址的主存单元的地址,简称操作数地址的地址的主存单元的地址,简称操作数地址的地址。操作数的有效地址的计算公式为:地址。操作数的有效地址的计算公式为:EA(A)34.4、间接寻址间接寻址l特点:因为操作数的有效地址在主存储器中,可以特点:因为操作数的有效地址在主存储器中,可以被灵活的修改而不必修改指令,从而使间接寻址要被灵活的修改而不必
30、修改指令,从而使间接寻址要比直接寻址灵活得多。但是,间接寻址在指令执行比直接寻址灵活得多。但是,间接寻址在指令执行过程中至少需要两次访问主存储器才能取出操作数,过程中至少需要两次访问主存储器才能取出操作数,严重降低了指令执行的速度。严重降低了指令执行的速度。35.5、寄存器寻址寄存器寻址l在指令的地址码部分给出在指令的地址码部分给出CPU内某一通用寄存器的内某一通用寄存器的编号,指令的操作数存放在相应的寄存器中,即编号,指令的操作数存放在相应的寄存器中,即EA=Ri优点:优点:(1)由于寄存器在由于寄存器在CPU的内部,指令在执行时从寄存器的内部,指令在执行时从寄存器中取操作数比访问主存要快得
31、多;中取操作数比访问主存要快得多;(2)由于寄存器的数量较少,因此寄存器编号所占位数由于寄存器的数量较少,因此寄存器编号所占位数也较少,从而可以有效减少指令的地址码字段的长也较少,从而可以有效减少指令的地址码字段的长度。度。36.6、寄存器间接寻址寄存器间接寻址l为了克服间接寻址中多次访存的缺点,可采用寄存器间接寻址,为了克服间接寻址中多次访存的缺点,可采用寄存器间接寻址,即将操作数放在主存储器中,而操作数的地址放在某一通用寄即将操作数放在主存储器中,而操作数的地址放在某一通用寄存器中,然后在指令的地址码部分给出该通用寄存器的编号,存器中,然后在指令的地址码部分给出该通用寄存器的编号,这时有这
32、时有EA=(Ri)l这种寻址方式的指令较短,并且在取指后只需一次访存便可得到操作这种寻址方式的指令较短,并且在取指后只需一次访存便可得到操作数,因此指令执行速度较前述的间接寻址方式要快,也是目前在计算数,因此指令执行速度较前述的间接寻址方式要快,也是目前在计算机中使用较为广泛的一种寻址方式。机中使用较为广泛的一种寻址方式。37.7、相对寻址相对寻址l由程序计数器由程序计数器PC提供基准地址,而指令的地址码提供基准地址,而指令的地址码部分给出相对的位移量部分给出相对的位移量D,两者相加后作为操作数,两者相加后作为操作数的有效地址,即:的有效地址,即:EA(PC)D。38.7、相对寻址相对寻址l对
33、寻址方式使程序模块可采用浮动地址,编程时对寻址方式使程序模块可采用浮动地址,编程时只要确定程序内部操作数与指令之间的相对距离,只要确定程序内部操作数与指令之间的相对距离,而无需确定操作数在主存储器中的绝对地址,这而无需确定操作数在主存储器中的绝对地址,这样,将程序安排在主存储器的任意位置都不会影样,将程序安排在主存储器的任意位置都不会影响程序执行的正确性。响程序执行的正确性。39.8、基址寻址基址寻址l在基址寻址方式中,指令的地址码部分给出偏在基址寻址方式中,指令的地址码部分给出偏移量移量D,而基准地址放在基址寄存器,而基准地址放在基址寄存器Rb中,最中,最后操作数的有效地址仍然是由基准地址后
34、操作数的有效地址仍然是由基准地址A与偏与偏移量移量D相加而成,即:相加而成,即:EA(Rb)D。用哪一。用哪一个寄存器作为基址寄存器也必须在硬件设计时个寄存器作为基址寄存器也必须在硬件设计时就事先规定,基址寄存器就事先规定,基址寄存器Rb中的内容称为基中的内容称为基准地址,该值可正可负。准地址,该值可正可负。40.8、基址寻址基址寻址l基址寄存器的位数可以设置得很长,从而可以在较基址寄存器的位数可以设置得很长,从而可以在较大的存储空间中寻址。大的存储空间中寻址。41.9、变址寻址变址寻址l变址寻址就是将指令的地址码部分给出的基准变址寻址就是将指令的地址码部分给出的基准地址地址A与与CPU内某特
35、定的变址寄存器内某特定的变址寄存器Rx中的内中的内容相加,以形成操作数的有效地址,即:容相加,以形成操作数的有效地址,即:EAA(Rx)。用哪一个寄存器作为变址寄存器。用哪一个寄存器作为变址寄存器必须在硬件设计时就事先规定,变址寄存器必须在硬件设计时就事先规定,变址寄存器Rx中的内容称为变址值,该值可正可负。中的内容称为变址值,该值可正可负。42.9、变址寻址变址寻址43.9、变址寻址变址寻址l变址寻址方式是一种被广泛采用的寻址方式,最典变址寻址方式是一种被广泛采用的寻址方式,最典型的应用就是将指令的地址码部分给出的地址型的应用就是将指令的地址码部分给出的地址A作作为基准地址,而将变址寄存器为
36、基准地址,而将变址寄存器Rx中的内容作为修改中的内容作为修改量。在遇到需要频繁修改操作数地址时,无须修改量。在遇到需要频繁修改操作数地址时,无须修改指令,只要修改指令,只要修改Rx中的变址值就可以了,这对于数中的变址值就可以了,这对于数组运算、字符串操作等一些进行成批数据处理的指组运算、字符串操作等一些进行成批数据处理的指令是很有用的。令是很有用的。44.10、段寻址方式、段寻址方式45.Pentium寻址方式寻址方式lPentium的外部地址总线宽度是的外部地址总线宽度是36位,但它也支持位,但它也支持32位物理地址空间。位物理地址空间。l在实地址模式下,逻辑地址形式为段寻址方式:在实地址模
37、式下,逻辑地址形式为段寻址方式:将将段名所指定的段寄存器内容段名所指定的段寄存器内容(16位位)左移左移4位,低位,低4位位补全补全0,得到,得到20位段基地址,再加上段内偏移,即位段基地址,再加上段内偏移,即得得20位物理地址。位物理地址。l在保护模式下,在保护模式下,32位段基地址加上段内偏移得到位段基地址加上段内偏移得到32位线性地址位线性地址LA。由存储管理部件将其转换成。由存储管理部件将其转换成32位位的物理地址。这个转换过程对指令系统和程序员是的物理地址。这个转换过程对指令系统和程序员是透明的。有透明的。有6个用户可见的段寄存器,每个保存相个用户可见的段寄存器,每个保存相应段的起始
38、地址、段长和访问权限。应段的起始地址、段长和访问权限。46.寻址方式举例:寻址方式举例:Pentium47.Pentium寻址方式寻址方式方式算法立即操作数=A寄存器LA=R偏移量LA=A基址LA=(B)基址+偏移量LA=(B)+A比例变址+偏移量LA=(I)S+A基址+变址+偏移量LA=(B)+(I)+A基址+比例变址+偏移量LA=(B)+(I)S+A相对LA=(PC)+A48.P118例例4l某某16位机器所使用的指令格式和寻址方式如位机器所使用的指令格式和寻址方式如P119所示,该机有两所示,该机有两个个20位基址寄存器,四个位基址寄存器,四个16位变址寄存器,十六个位变址寄存器,十六个
39、16位通用寄存位通用寄存器。指令汇编格式中的器。指令汇编格式中的S(源),(源),D(目标)都是通用寄存器,(目标)都是通用寄存器,M是主存中的一个单元。三种指令的操作码分别是是主存中的一个单元。三种指令的操作码分别是MOV(OP)=(A)H,STO(OP)=(1B)H,LAD(OP)=(3C)H。MOV是传送指令,是传送指令,STO为存数指令,为存数指令,LAD为取数指令。要求:为取数指令。要求:(1)分析三种指令的指令格式与寻址方式特点。)分析三种指令的指令格式与寻址方式特点。(2)CPU完成哪一种操作所花时间最短完成哪一种操作所花时间最短?哪一种操作所花时间最长哪一种操作所花时间最长?第
40、二种指令的执行时间有时会等于第三种指令的执行时间吗第二种指令的执行时间有时会等于第三种指令的执行时间吗?(3)下列情况下每个十六进制指令字分别代表什么操作)下列情况下每个十六进制指令字分别代表什么操作?其中如果有其中如果有编码不正确,如何改正才能成为合法指令编码不正确,如何改正才能成为合法指令?49.P118例例4F0F13CD2111100001111000100111100110100103C15号寄存器13CD2把主存13CD2的内存装载到15号寄存器6FD60110111111010110由于是单字长指令,则一定是MOV指令。则OP错误,修改为001010001101011028D65
41、0.4.5典型指令典型指令l指令分类与基本指令类型指令分类与基本指令类型l数据传送类指令l一般传送指令:MOVAX,BXl数据交换指令:XCHGl堆栈操作指令:PUSH,POPl运算类指令l算术运算指令:加、减、乘、除以及加1、减1、比较l逻辑运算指令:l移位指令l程序控制类指令l程序控制类指令用于控制程序的执行方向,并使程序具有测试、分析与判断的能力。l输入和输出指令、字符串处理指令、特权指令、其他指令51.4.5典型指令典型指令l基本指令系统lP122表4.9介绍l20%和80%规律:CISC中大约有20%的指令使用频率高,占据了80%的处理机时间,而有80%的不常用指令只占用处理机的20
42、%时间。lVLSI技术发展引起的问题lVLSI工艺要求规整性,而大量复杂指令控制逻辑极其不规整,给VLSI工艺造成了很大的困难。l现在用微程序实现复杂指令与用简单指令组成的子程序相比,没有多大的区别。因为现在控制存储器和主存的速度差缩小。lCISC中,通过增强指令系统的功能,简化了软件,增加了硬件的复杂程度。然而指令复杂了,指令的执行时间必然加长,从而使整个系统的执行时间反而增加,因而在计算机体系结构设计中,软硬件的功能分配必须恰当52.4.5典型指令典型指令lRISCl特点(采用流水线技术)l简单而统一格式的指令译码;l大部分指令可以单周期执行l只有LOAD/STORE可以访问存储器l简单的
43、寻址方式l采用延迟转移技术l采用LOAD延迟技术l三地址指令格式l较多的寄存器l对称的指令格式返回53.本本章章小小结结一台计算机中所有机器指令的集合,称为这台计算机的指令系统。指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也影响到系统软件。指令格式是指令字用二进制代码表示的结构形式,通常由操作码字段和地址码字段组成。返回54.本本章章小小结结操作码字段表征指令的操作特性与功能,而地址码字段指示操作数的地址。目前多采用二地址、单地址、零地址混合方式的指令格式。指令字长度分为:单字长、半字长、双字长三种形式。高档微机采用32位长度的单字长形式。返回55.
44、本本章章小小结结形成指令地址的方式,称为指令寻址方式。有顺序寻址和跳跃寻址两种,由指令计数器来跟踪。形成操作数地址的方式,称为数据寻址方式。操作数可放在专用寄存器、通用寄存器、内存和指令中。数据寻址方式有隐含寻址、立即寻址、直接寻址、间接寻址、寄存器寻址、寄存器间接寻址、相对寻址、基值寻址、变址寻址、块寻址、段寻址等多种。按操作数的物理位置不同,有RR型和RS型。前者比后者执行的速度快。返回56.本本章章小小结结按结构不同,分为寄存器堆栈和存储器堆栈。不同机器有不同的指令系统。一个较完善的指令系统应当包含数据传送类指令、算术运算类指令、逻辑运算类指令、程序控制类指令、I/O类指令、字符串类指令、系统控制类指令。RISC指令系统是目前计算机发展的主流,也是CISC指令系统的改进,它的最大特点是:指令条数少;指令长度固定,指令格式和寻址方式种类少;只有取数/存数指令访问存储器,其余指令的操作均在寄存器之间进行。返回57.