1、第四章 指令系统4.1 指令系统的发展指令系统的发展与性能要求 4.2 指令格式指令格式4.3 寻址方式寻址方式4.4 典型指令典型指令BackBack.4.1 指令系统的发展指令系统的发展与性能要求1、指令在计算机系统中的地位(1)是软件和硬件分界面的一个主要标志 硬件设计人员采用各种手段实现它;软件设计人员则利用它编制各种各样的系统软件和应用软件(2)是硬件设计人员和软件设计人员之间的分界面,也是他们之间沟通的桥梁。NEXTNEXT.4.1 指令系统的发展指令系统的发展与性能要求2 2、指令系统基本概念、指令系统基本概念指令:指令:就是要计算机执行某种操作的命令。从计算机组成就是要计算机执
2、行某种操作的命令。从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏的层次结构来说,计算机的指令有微指令、机器指令和宏指令之分。微指令是微程序级的命令,它属于硬件;指令之分。微指令是微程序级的命令,它属于硬件;宏指令:宏指令:由若干条机器指令组成的软件指令,它属于软件;由若干条机器指令组成的软件指令,它属于软件;机器指令:机器指令:介于微指令与宏指令之间,通常简称为指令,介于微指令与宏指令之间,通常简称为指令,每一条指令可完成一个独立的算术运算或逻辑运算操作。每一条指令可完成一个独立的算术运算或逻辑运算操作。本章所讨论的指令,是机器指令。本章所讨论的指令,是机器指令。NEXTNEX
3、T.指令系统:一台计算机中所有机器指令的集合,称为这台计算机的指令系统。指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也直接影响到系统软件,影响到机器的适用范围系列机:4.1 指令系统的发展指令系统的发展与性能要求NEXTNEXT.3 3、发展情况、发展情况(1 1)2020世纪世纪5050年代:年代:(2 2)60 60年代后期:年代后期:(3 3)7070年代末期:年代末期:复杂指令系统计算机:复杂指令系统计算机:简称简称CISCCISC。但是如此庞大的指令系。但是如此庞大的指令系统不但使计算机的研制周期变长,难以保证正确性,不易统不但使计算机的研
4、制周期变长,难以保证正确性,不易调试维护,而且由于采用了大量使用频率很低的复杂指令调试维护,而且由于采用了大量使用频率很低的复杂指令而造成硬件资源浪费。而造成硬件资源浪费。精简指令系统计算机:精简指令系统计算机:简称简称RISCRISC,人们又提出了便于,人们又提出了便于VLSIVLSI技术实现的精简指令系统计算机。技术实现的精简指令系统计算机。4.1 指令系统的发展指令系统的发展与性能要求NEXTNEXT.4.1 指令系统的发展与性能要求5 5、对指令系统的性能要求、对指令系统的性能要求 完备性:完备性:完备性是指用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,完备性是指用汇编语言
5、编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现。完备性要求指令系统丰富、功能齐全、使用方便。一台计算而不必用软件来实现。完备性要求指令系统丰富、功能齐全、使用方便。一台计算机中最基本、必不可少的指令是不多的。许多指令可用最基本的指令编程来实现。机中最基本、必不可少的指令是不多的。许多指令可用最基本的指令编程来实现。例如,乘除运算指令、浮点运算指令可直接用硬件来实现,也可用基本指令编写的例如,乘除运算指令、浮点运算指令可直接用硬件来实现,也可用基本指令编写的程序来实现。采用硬件指令的目的是提高程序执行速度,便于用户编写程序。程序来实现。采用硬件指令的目的是提高程序执行速度,便
6、于用户编写程序。有效性:有效性:有效性是指利用该指令系统所编写的程序能够高效率地运行。高效率主要表现有效性是指利用该指令系统所编写的程序能够高效率地运行。高效率主要表现在程序占据存储空间小、执行速度快。一般来说,一个功能更强、更完善的指令系在程序占据存储空间小、执行速度快。一般来说,一个功能更强、更完善的指令系统,必定有更好的有效性。统,必定有更好的有效性。规整性:规整性:规整性包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。对称规整性包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。对称性是指:在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可性是指:在指令系
7、统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式;匀齐性是指:一种操作性质的指令可以支持各种数据类型,如使用各种寻址方式;匀齐性是指:一种操作性质的指令可以支持各种数据类型,如算术运算指令可支持字节、字、双字整数的运算,十进制数运算和单、双精度浮点算术运算指令可支持字节、字、双字整数的运算,十进制数运算和单、双精度浮点数运算等;指令格式和数据格式的一致性是指:指令长度和数据长度有一定的关系,数运算等;指令格式和数据格式的一致性是指:指令长度和数据长度有一定的关系,以方便处理和存取。例如指令长度和数据长度通常是字节长度的整数倍。以方便处理和存取。例如指令长度和数据长度通常
8、是字节长度的整数倍。兼容性:兼容性:系列机各机种之间具有相同的基本结构和共同的基本指令集,因而指令系统是系列机各机种之间具有相同的基本结构和共同的基本指令集,因而指令系统是兼容的,即各机种上基本软件可以通用。但由于不同机种推出的时间不同,在结构兼容的,即各机种上基本软件可以通用。但由于不同机种推出的时间不同,在结构和性能上有差异,做到所有软件都完全兼容是不可能的,只能做到和性能上有差异,做到所有软件都完全兼容是不可能的,只能做到“向上兼容向上兼容”,即低,即低档机上运行的软件可以在高档机上运行。档机上运行的软件可以在高档机上运行。返回返回.堆栈寻址堆栈寻址寄存器堆栈(硬堆栈)存储器堆栈(软堆栈
9、)返回返回.4.2 指令格式指令格式指令指令指令指令:表示一条指令的机器字,称为指:表示一条指令的机器字,称为指:表示一条指令的机器字,称为指:表示一条指令的机器字,称为指令字,简称指令。令字,简称指令。令字,简称指令。令字,简称指令。指令格式指令格式指令格式指令格式:是指令字用二进制代码表示:是指令字用二进制代码表示:是指令字用二进制代码表示:是指令字用二进制代码表示的结构形式,通常由操作码和地址码组的结构形式,通常由操作码和地址码组的结构形式,通常由操作码和地址码组的结构形式,通常由操作码和地址码组成。成。成。成。操作码操作码 地址码地址码返回返回NEXT.操作码字段操作码字段操作码字段操
10、作码字段表征指令的操作特性与功能,它表征指令的操作特性与功能,它表征指令的操作特性与功能,它表征指令的操作特性与功能,它 的位数一般取决于计算机指令系统的规模。的位数一般取决于计算机指令系统的规模。的位数一般取决于计算机指令系统的规模。的位数一般取决于计算机指令系统的规模。地址码字段地址码字段地址码字段地址码字段是指定参与操作的操作数地址,是指定参与操作的操作数地址,是指定参与操作的操作数地址,是指定参与操作的操作数地址,根据一条指令中有几个操作数地址可将该指根据一条指令中有几个操作数地址可将该指根据一条指令中有几个操作数地址可将该指根据一条指令中有几个操作数地址可将该指令称为几操作数指令或几
11、地址指令。令称为几操作数指令或几地址指令。令称为几操作数指令或几地址指令。令称为几操作数指令或几地址指令。返回返回.4.2.3指令字长度指令字长度:一个指令字包含二进制代码的位数。指令字长度:一个指令字包含二进制代码的位数。机器字长:计算机能直接处理的二进制数据的位数。机器字长:计算机能直接处理的二进制数据的位数。单字长指令单字长指令半字长指令半字长指令双字长指令双字长指令多字长指令的优缺点:多字长指令的优缺点:优点优点优点优点提供足够的地址位来解决访问提供足够的地址位来解决访问内存任何单元的寻址问题;内存任何单元的寻址问题;缺点缺点缺点缺点必须两次或多次访问内存必须两次或多次访问内存以取出一
12、整条指令,降低了以取出一整条指令,降低了CPUCPU的运算速度,又占用了更的运算速度,又占用了更多的存储空间。多的存储空间。等长指令字结构:等长指令字结构:指令系统中指令采用等长指令的优点:指令系统中指令采用等长指令的优点:各种指令字长度是相等的,指令字结构简单,且指令字长各种指令字长度是相等的,指令字结构简单,且指令字长度是不变的;度是不变的;变长指令字结构:变长指令字结构:采用非等长指令的的优点:各种指令字采用非等长指令的的优点:各种指令字长度随指令功能而异,结构灵活,能充分利用指令长度,长度随指令功能而异,结构灵活,能充分利用指令长度,但指令的控制较复杂。但指令的控制较复杂。返回返回.地
13、址码:根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令。返回返回.指令格式指令格式指令操作码的扩展方法:指令操作码的扩展方法:指令操作码的扩展方法:指令操作码的扩展方法:指令操作码通常有两种编码格式指令操作码通常有两种编码格式指令操作码通常有两种编码格式指令操作码通常有两种编码格式固定格式固定格式固定格式固定格式:操作码的长度固定,且集中放操作码的长度固定,且集中放操作码的长度固定,且集中放操作码的长度固定,且集中放在指令字一个字段中。在指令字一个字段中。在指令字一个字段中。在指令字一个字段中。可变格式可变格式可变格式可变格式:操作码的长度可变,且分散的操作码的长度可变,
14、且分散的操作码的长度可变,且分散的操作码的长度可变,且分散的放在指令字的不同字段中。放在指令字的不同字段中。放在指令字的不同字段中。放在指令字的不同字段中。返回返回.扩展举例扩展举例扩展举例扩展举例 :设某机器的指令长度为设某机器的指令长度为设某机器的指令长度为设某机器的指令长度为1616位,有位,有位,有位,有4 4位基本操位基本操位基本操位基本操作码字段和两个作码字段和两个作码字段和两个作码字段和两个6 6位地址码字段,其格式如下:位地址码字段,其格式如下:位地址码字段,其格式如下:位地址码字段,其格式如下:15 12 11 6 5 15 12 11 6 5 0 0扩展方法:扩展方法:扩展
15、方法:扩展方法:1.1.二地址指令仅有二地址指令仅有二地址指令仅有二地址指令仅有1515条,由条,由条,由条,由4 4位基本操作码的位基本操作码的位基本操作码的位基本操作码的0000 0000 11101110组合给出,余下的组合组合给出,余下的组合组合给出,余下的组合组合给出,余下的组合11111111用于把操作码扩展到用于把操作码扩展到用于把操作码扩展到用于把操作码扩展到A1A1,即从,即从,即从,即从4 4位扩展到位扩展到位扩展到位扩展到1010位。位。位。位。2.2.单地址指令由操作码单地址指令由操作码单地址指令由操作码单地址指令由操作码1111000000 1111111110111
16、1000000 1111111110,余下一个组合,余下一个组合,余下一个组合,余下一个组合11111111111111111111用于把操作码扩展到用于把操作码扩展到用于把操作码扩展到用于把操作码扩展到A2A2,即从即从即从即从1010位扩展到位扩展到位扩展到位扩展到1616位。位。位。位。3.3.零地址指令的零地址指令的零地址指令的零地址指令的1616位操作码由位操作码由位操作码由位操作码由1111 111111 0000001111 111111 0000001111 111111 1111111111 111111 111111给出。给出。给出。给出。OPA1A2返回返回.寻址方式寻址
17、方式 确定本条指令的数据地址及下一条将确定本条指令的数据地址及下一条将要执行的指令的方法。它与计算机硬件结要执行的指令的方法。它与计算机硬件结构紧密相关,而且对指令格式和功能有很构紧密相关,而且对指令格式和功能有很大的影响。大的影响。寻址的基本方式有两种:寻址的基本方式有两种:指令寻址方式指令寻址方式指令寻址方式指令寻址方式操作数寻址方式操作数寻址方式操作数寻址方式操作数寻址方式返回返回.指令寻址的基本方式指令寻址的基本方式有两种:有两种:顺序寻址:顺序寻址:顺序寻址:顺序寻址:由于指令地址在内存中按顺序安排,当由于指令地址在内存中按顺序安排,当执行一段程序时,通常是一条指令接一条执行一段程序
18、时,通常是一条指令接一条指令的顺序进行。指令的顺序进行。跳跃寻址方式跳跃寻址方式跳跃寻址方式跳跃寻址方式:当程序转移执行的顺序时,指令的寻址当程序转移执行的顺序时,指令的寻址就采取跳跃寻址方式。就采取跳跃寻址方式。返回返回.操作数寻址方式:操作数寻址方式:是指形成操作数有效地址的方法。是指形成操作数有效地址的方法。是指形成操作数有效地址的方法。是指形成操作数有效地址的方法。操作数寻址方式有操作数寻址方式有:1.1.隐含寻址隐含寻址隐含寻址隐含寻址 6.6.寄存器间接寻址寄存器间接寻址寄存器间接寻址寄存器间接寻址 2.2.立即寻址立即寻址立即寻址立即寻址 7.7.相对寻址相对寻址相对寻址相对寻址
19、、变址和基址寻址变址和基址寻址变址和基址寻址变址和基址寻址 3.3.直接寻址直接寻址直接寻址直接寻址 8 8.复合寻址复合寻址复合寻址复合寻址 4.4.间接寻址间接寻址间接寻址间接寻址 9.9.段寻址段寻址段寻址段寻址 5.5.寄存器寻址寄存器寻址寄存器寻址寄存器寻址 10.10.堆栈寻址堆栈寻址堆栈寻址堆栈寻址 返回返回.隐含寻址隐含寻址:这种类型的指令,不是明显地给出操作数这种类型的指令,不是明显地给出操作数这种类型的指令,不是明显地给出操作数这种类型的指令,不是明显地给出操作数的地址,而是在指令中隐含着操作数的地址。的地址,而是在指令中隐含着操作数的地址。的地址,而是在指令中隐含着操作数
20、的地址。的地址,而是在指令中隐含着操作数的地址。例如例如例如例如:单地址的指令格式,不是明显地在地址:单地址的指令格式,不是明显地在地址:单地址的指令格式,不是明显地在地址:单地址的指令格式,不是明显地在地址字段中指出第二操作数的地址,而是规定累加字段中指出第二操作数的地址,而是规定累加字段中指出第二操作数的地址,而是规定累加字段中指出第二操作数的地址,而是规定累加寄存器寄存器寄存器寄存器ACAC对单地址指令格式来说是隐含地址。对单地址指令格式来说是隐含地址。对单地址指令格式来说是隐含地址。对单地址指令格式来说是隐含地址。返回返回.指令的地址字段指出的不是操指令的地址字段指出的不是操作数的地址
21、,而是操作数本身,这作数的地址,而是操作数本身,这种寻址方式称为立即寻址。种寻址方式称为立即寻址。立即寻址:立即寻址:返回返回.直接寻址直接寻址是一种基本的寻址方法,是一种基本的寻址方法,其特点是:在指令格式的地址字段其特点是:在指令格式的地址字段中直接指出操作数在内存的地址。中直接指出操作数在内存的地址。返回返回.间接寻址间接寻址是相对于直接寻址而言的,是相对于直接寻址而言的,在间接寻址的情况下,指令地址字段在间接寻址的情况下,指令地址字段中的形式地址中的形式地址D不是操作数的真正地不是操作数的真正地址,而是操作数地址的指示器或者说址,而是操作数地址的指示器或者说D单元的操作数的有效地址单元
22、的操作数的有效地址返回返回.寄存器寻址方式寄存器寻址方式:当操作数不放在内存中,而是放在当操作数不放在内存中,而是放在中央处理器的通用寄存器中时,可采用中央处理器的通用寄存器中时,可采用寄存器寻址方式。寄存器寻址方式。返回返回.寄存器间接寻址返回返回.相相对寻址对寻址:是把程序计数器是把程序计数器PC的内容加的内容加上指令格式中的形式地址上指令格式中的形式地址D而形成而形成操作数的有效地址。操作数的有效地址。返回返回.变址和基址寻址方式变址和基址寻址方式:变址和基址寻址方式有点类似,它变址和基址寻址方式有点类似,它是把某个变址寄存器或基值寄存器的内容是把某个变址寄存器或基值寄存器的内容加上指令
23、格式中的形式地址而形成操作数加上指令格式中的形式地址而形成操作数的有效地址。的有效地址。返回返回.复合寻址方式复合寻址方式:复合寻址方式是把间接寻址方式同相对寻址方式复合寻址方式是把间接寻址方式同相对寻址方式或变址方式相结合而形成的寻址方式。它分为先间接方式或变址方式相结合而形成的寻址方式。它分为先间接方式与后间接方式两种:与后间接方式两种:1.变址间接式变址间接式:2.间接变址方式间接变址方式:返回返回.1.数据传送指令数据传送指令2.算术运算指令算术运算指令3.逻辑运算指令逻辑运算指令4.程序控制指令程序控制指令5.输入输出指令输入输出指令6.堆栈操作指令堆栈操作指令7.字符串处理指令字符
24、串处理指令8.特权指令特权指令9.其他指令其他指令返回返回指令的分类指令的分类.O P X1 Ri指令指令寄存器寻址寄存器寻址操作数操作数操作数操作数Ri返回返回.变址间接式变址间接式 O P X5 D 操作数操作数指令指令内存内存.A 变址寄存器变址寄存器NS返回返回.间接变址式间接变址式 O P X6 D 操作数操作数指令指令内存内存.A 变址寄存器变址寄存器NS返回返回.堆栈:堆栈:堆栈:堆栈:是一组能存储和取出数据的暂存单是一组能存储和取出数据的暂存单是一组能存储和取出数据的暂存单是一组能存储和取出数据的暂存单 元。元。元。元。它和一般的存储器之间的区别在于对数据的存它和一般的存储器之
25、间的区别在于对数据的存它和一般的存储器之间的区别在于对数据的存它和一般的存储器之间的区别在于对数据的存取方法和寻址方式不同。取方法和寻址方式不同。取方法和寻址方式不同。取方法和寻址方式不同。串联堆栈串联堆栈串联堆栈串联堆栈:寄存器堆栈(硬堆栈)存储器堆栈:存储器堆栈:存储器堆栈:存储器堆栈:(软堆栈)返回返回.数据传送指令数据传送指令:数据传送指令主要包括取数指令,存数指令,数据传送指令主要包括取数指令,存数指令,传送指令,成组传送指令,字节交换指令,清累加传送指令,成组传送指令,字节交换指令,清累加器指令等,这类指令主要用来实现主存和寄存器之器指令等,这类指令主要用来实现主存和寄存器之间,或
26、寄存器和寄存器之间的数据传送。间,或寄存器和寄存器之间的数据传送。返回返回.算术运算指令:算术运算指令:这类指令包括二进制定点加、减、乘、除指令,这类指令包括二进制定点加、减、乘、除指令,求反,求补指令,算术移位指令,算术比较指令,有求反,求补指令,算术移位指令,算术比较指令,有些机器还有十进制算术运算指令。这类指令主要用于些机器还有十进制算术运算指令。这类指令主要用于定点或浮点的算术运算。定点或浮点的算术运算。返回返回.逻辑运算指令:逻辑运算指令:这类指令包括逻辑加,逻辑乘,按位加,逻辑这类指令包括逻辑加,逻辑乘,按位加,逻辑移位等指令,主要用于代码的转换,判断及运移位等指令,主要用于代码的
27、转换,判断及运算。算。返回返回.程序控制指令:程序控制指令:计算机在执行程序时,通常情况下按指令计数器的现计算机在执行程序时,通常情况下按指令计数器的现行地址顺序取指令。但有时会遇到特殊情况:机器执行行地址顺序取指令。但有时会遇到特殊情况:机器执行到某条指令时,出现了几种不同结果,这时机器必须执行到某条指令时,出现了几种不同结果,这时机器必须执行一条转移指令,根据不同结果,这时机器必须执行一条转一条转移指令,根据不同结果,这时机器必须执行一条转移指令,从而改变程序原来执行的顺序。这种转移指令称移指令,从而改变程序原来执行的顺序。这种转移指令称为条件转移指令。为条件转移指令。除各种条件转移指令外
28、,还有无条件转移指令,转子除各种条件转移指令外,还有无条件转移指令,转子程序指令,返回主程序指令,中断返回指令等。程序指令,返回主程序指令,中断返回指令等。返回返回.输入输出指令:输入输出指令:输入输出指令主要用来启动外围设备,检查测输入输出指令主要用来启动外围设备,检查测试外围设备的工作状态,并实现外部设备和试外围设备的工作状态,并实现外部设备和 CPU之间,之间,或外围设备与外围设备之间的信息传送或外围设备与外围设备之间的信息传送。返回返回.堆栈操作指令:堆栈操作指令:堆栈操作指令通常有两条:一条是进栈指令,堆栈操作指令通常有两条:一条是进栈指令,执行两个动作:(执行两个动作:(1)将数据
29、从)将数据从CPU 压入堆栈栈顶;压入堆栈栈顶;(2)修改堆栈指示器。另一条是退栈指令,也执行)修改堆栈指示器。另一条是退栈指令,也执行两个动作:两个动作:(1)修改堆栈指示器;()修改堆栈指示器;(2)从栈顶取)从栈顶取出数据到出数据到CPU。这两条指令是成对出现的,因而在。这两条指令是成对出现的,因而在程序的中断嵌套、子程序调用嵌套过程中十分有用程序的中断嵌套、子程序调用嵌套过程中十分有用和方便。和方便。返回返回.字符串处理指令:字符串处理指令:字符串处理指令是一种非数值处理指令,一般包字符串处理指令是一种非数值处理指令,一般包括字符串传送、字符串转换、字符串比较、字符串查括字符串传送、字
30、符串转换、字符串比较、字符串查找、字符串抽取、字符串替换等。这类指令在文字编找、字符串抽取、字符串替换等。这类指令在文字编辑中对大量字符串进行处理。辑中对大量字符串进行处理。返回返回.特权指令:特权指令:特权指令是指具有特殊权限的指令。由于特权指令是指具有特殊权限的指令。由于指令的权限最大,若使用不当,会破坏系统和指令的权限最大,若使用不当,会破坏系统和其他用户信息。因此这类指令只用于操作系统其他用户信息。因此这类指令只用于操作系统或其他系统软件,一般不直接提供给用户用。或其他系统软件,一般不直接提供给用户用。返回返回.其他指令:其他指令:除以上各类指令外,还有状态寄存器置位、除以上各类指令外,还有状态寄存器置位、复位指令,测试指令,停机指令,以及复位指令,测试指令,停机指令,以及其他一些特殊控制用的指令。其他一些特殊控制用的指令。返回返回.直接寻址方式示意图直接寻址方式示意图返回返回.间接寻址方式示意图返回返回.相对寻址方式示意图返回返回.间接寻址示意图返回返回.基址和变址寻址返回返回.感谢亲观看此幻灯片,此课件部分内容来源于网络,感谢亲观看此幻灯片,此课件部分内容来源于网络,如有侵权请及时联系我们删除,谢谢配合!如有侵权请及时联系我们删除,谢谢配合!