计算机组成原理指令系统课件

上传人:M****1 文档编号:568829192 上传时间:2024-07-27 格式:PPT 页数:89 大小:1,022.50KB
返回 下载 相关 举报
计算机组成原理指令系统课件_第1页
第1页 / 共89页
计算机组成原理指令系统课件_第2页
第2页 / 共89页
计算机组成原理指令系统课件_第3页
第3页 / 共89页
计算机组成原理指令系统课件_第4页
第4页 / 共89页
计算机组成原理指令系统课件_第5页
第5页 / 共89页
点击查看更多>>
资源描述

《计算机组成原理指令系统课件》由会员分享,可在线阅读,更多相关《计算机组成原理指令系统课件(89页珍藏版)》请在金锄头文库上搜索。

1、http:/ 指令系统(时间:3次课,6学时)计算机组成原理 指令系统http:/第5章 指令系统本本章章讲讲述述计计算算机机指指令令功功能能、指指令令中中包包含含的的信信息息、指指令令的的一一般般格格式式、被被指指令令处处理理的的数数据据如如何何存存储储在在计计算算机机中中、指指令令如如何何寻寻找找被被处处理理的的数数据据、指指令令分分类类、指指令令系系统统的的兼兼容容性性等等问问题题,并并列列举举几几种种类类型型的的计计算算机机指指令令系系统统,由由此此可可以以较较为为深深刻刻地地理理解解计计算算机机指指令和指令系统的意义。令和指令系统的意义。计算机组成原理 指令系统http:/第5章 指

2、令系统n5.1计算机指令概念计算机指令概念n5.2指令格式指令格式n5.3数据的表示和存储数据的表示和存储n5.4寻址方式寻址方式n5.5指令类型指令类型n5.6指令系统举例指令系统举例n5.7机器语言、汇编语言和高级语言机器语言、汇编语言和高级语言计算机组成原理 指令系统http:/5.1计算机指令概念计算机指令概念n软软件件系系统统分分为为许许多多层层次次,最最低低的的一一层层就就是是紧紧临临硬硬件件的的一一层层,它它直直接接控控制制计计算算机机的的硬硬件件运运行行,这这一一层层就就是是指指令令系系统统。指指令令系系统统是是一一种种型型号号的的计计算算机机所所具具有有的的全全体体指指令令的

3、的集集合合。不不同同型型号号的的计计算算机机有有不不同同的的指指令系统,一般不兼容。令系统,一般不兼容。n计计算算机机正正在在执执行行的的指指令令(二二进进制制信信息息)是是存存放放在在控控制制器器的的指指令令寄寄存存器器中中的的。一一条条指指令令的的功功能能就就是是告告诉诉计计算算机机要要完完成成什什么么操操作作,至至于于具具体体如如何何完完成成,必必须须将将指指令令寄寄存存器器中中的的指指令令经经控控制制器器的的译译码码电电路路和和微微命命令令发发生生器器,产产生生微微命命令令;经经控控制制器器的的地地址址形形成成电电路路给给出出操操作作数数地地址址;由由微微命命令令和和操操作作数数地地址

4、址决决定定实实际际的操作步骤。的操作步骤。计算机组成原理 指令系统http:/5.1计算机指令概念计算机指令概念n一一般般说说来来,指指令令系系统统中中的的一一条条指指令令包包括括两两大大类类信信息息,即操作信息和地址信息。即操作信息和地址信息。n计计算算机机指指令令系系统统的的设设置置与与计计算算机机硬硬件件结结构构密密切切相相关关。指指令令系系统统直直接接影影响响到到计计算算机机系系统统的的性性能能,也也直直接接影影响响到到操操作作系系统统和和编编译译程程序序的的编编写写难难度度,可可见见指指令令系系统统的的设计是计算机系统设计中的一个核心问题。设计是计算机系统设计中的一个核心问题。n系列

5、系列(Series)计算机。计算机。n指指令令系系统统的的改改进进是是围围绕绕着着缩缩小小机机器器语语言言、汇汇编编语语言言与与高高级级语语言言的的语语义义差差异异以以及及有有利利于于操操作作系系统统的的实实现现和和优优化化而而进进行行的的,它它有有利利于于高高级级语语言言程程序序的的编编译译和和提提高高机器运行速度。机器运行速度。计算机组成原理 指令系统http:/5.1计算机指令概念计算机指令概念n指令系统太复杂也会带来一些不利因素,为了解决指令系统太复杂也会带来一些不利因素,为了解决这个问题,这个问题,70年代末人们提出了便于年代末人们提出了便于VLSI实现的精简实现的精简指令系统计算机

6、,简称指令系统计算机,简称RISC;与之相应的便是复杂;与之相应的便是复杂指令系统计算机,简称指令系统计算机,简称CISC。计算机组成原理 指令系统http:/5.2指指令令格格式式计计算算机机的的指指令令格格式式与与机机器器字字长长、存存储储器器的的容容量量以以及及指指令令的的功功能能都都有有很很大大关关系系。为为了了便便于于程程序序设设计计、增增加加基基本本操操作作的的并并行行性性、增增强强指指令令功功能能,指指令令中中包包含含的的信信息息越越多多越越好好。然然而而如如果果所所有有指指令令都都取取相相同同长长度度的的话话,那那么么在在有有些些指指令令中中,一一部部分分信信息息将将是是没没有

7、有意意义义的的,这这就就浪浪费费了了指指令令所所占占的的存存储储空空间间,从从而而增增加加了了访访存存次次数数,可可能能使使整整个个指指令令执执行行时时间间更更长长。因因此此,如如何何科科学学合合理理地地设设计计指指令令格格式式,使使指指令令既既能能给给出出足足够够信信息息,其其长长度度又又尽尽可可能能与与机机器器的的字字长长相相匹匹配配,从从而而节节省省存存储储空空间间,缩缩短短取取指指周周期期,达达到到提提高高机机器器性性能能的的目目的的,一一直直是是指指令令格格式式设设计计中中的的一一个个重重要要问问题。题。计算机组成原理 指令系统http:/5.2指指令令格格式式n5.2.1指令的一般

8、格式指令的一般格式n5.2.2指令操作码的扩展技术指令操作码的扩展技术n5.2.3指令长度与字长的关系指令长度与字长的关系计算机组成原理 指令系统http:/5.2.1指令的一般格式指令的一般格式计计算算机机通通过过执执行行指指令令来来处处理理各各种种数数据据。为为了了指指出出数数据据的的来来源源、操操作作结结果果的的去去向向及及所所执执行行的的操操作作,一条指令必须包含下列信息。一条指令必须包含下列信息。n操作码操作码n操作数的地址。操作数的地址。n下一条指令的地址下一条指令的地址根根据据上上述述分分析析可可知知,一一条条指指令令实实际际上上包包括括两两种种信信息息,即操作码和地址码。即操作

9、码和地址码。1.零地址指令零地址指令OP CODE2.一地址指令一地址指令OPCODEA3.两地址指令两地址指令4.三地址指令三地址指令计算机组成原理 指令系统http:/5.2.1指令的一般格式指令的一般格式5.多地址指令多地址指令在在某某些些性性能能较较好好的的大大、中中型型机机甚甚至至高高档档次次小小型型机机中中,往往往往设设置置一一些些功功能能很很强强、用用于于处处理理成成批批数数据据的的指指令令,如如字字符符串串处处理理指指令令,向向量量、矩矩阵阵运运算算指指令令。为为了了描描述述一一批批数数据据,指指令令中中需需要要多多个个地地址址来来指指出出数数据据存存放放的首地址、长度和下标等

10、信息。的首地址、长度和下标等信息。以以上上所所述述的的几几种种指指令令只只是是一一般般情情况况,并并非非所所有有计计算算机机都都具具有有。零零地地址址、一一地地址址和和两两地地址址指指令令具具有有指指令令短短、执执行行速速度度快快、硬硬件件实实现现简简单单等等特特点点,多多为为结结构构较较简简单单、字字长长较较短短的的小小型型、微微型型机机所所采采用用;而而两两地地址址、三三地地址址和和多多地地址址指指令令具具有有功功能能强强、便便于于编编程程等等特特点点,多多为为字字长长较较长长的的大大、中中型型机机所所采采用用。但但也也不不能能一一概概而而论。论。计算机组成原理 指令系统http:/5.2

11、.1指令的一般格式指令的一般格式在计算机中,指令和数据一样都是以二进制码形在计算机中,指令和数据一样都是以二进制码形式存储的,所以如果仅从存储形式来看,两者并没式存储的,所以如果仅从存储形式来看,两者并没有差别。但是,指令的地址由程序计数器有差别。但是,指令的地址由程序计数器(PC)给出,给出,而数据的地址则是由指令规定的,在而数据的地址则是由指令规定的,在CPU控制下访控制下访存时,肯定不会将指令和数据混淆。存时,肯定不会将指令和数据混淆。为了程序能重复执行,一般要求程序在运行前后为了程序能重复执行,一般要求程序在运行前后所有的指令都保持不变,因此在程序执行过程中,所有的指令都保持不变,因此

12、在程序执行过程中,要避免修改指令;一旦发生了修改指令的情况,则要避免修改指令;一旦发生了修改指令的情况,则按出错处理。按出错处理。计算机组成原理 指令系统http:/5.2.2指令操作码的扩展技术指令操作码的扩展技术指指令令的的操操作作码码长长度度决决定定了了指指令令系系统统中中完完成成不不同同操操作作的的指指令令条条数数。若若某某机机器器的的操操作作码码长长度度为为K位位,则则它它最最多多只只能能有有2K条条不不同同指指令令。指指令令操操作作码码通通常常有有两两种种编编码码格格式式,一一种种是是固固定定格格式式,即即操操作作码码的的长长度度固固定定,且且集集中中放放在在指指令令字字的的一一个

13、个字字段段中中。这这种种格格式式对对于于简简化化硬硬件件设设计计、减减少少指指令令译译码码时时间间非非常常有有利利,在在字字长长较较长长的的大大、中中型型机机和和超超级级小小型型机机以以及及RISC上上广广泛泛使使用用。另另一一种种是是可可变变格格式式,即即操操作作码码的的长长度度可可变变,且且分分散散地地放放在在指指令令字字的的不不同同字字段段中中。这这种种格格式式能能够够有有效效地地压压缩缩程程序序中中操操作作码码的的平均长度,在字长较短的微型机上广泛采用。平均长度,在字长较短的微型机上广泛采用。计算机组成原理 指令系统http:/5.2.2指令操作码的扩展技术指令操作码的扩展技术显然,操

14、作码长度不固定将增加指令译码和分析显然,操作码长度不固定将增加指令译码和分析的难度,使控制器的设计复杂化,因此对操作码的的难度,使控制器的设计复杂化,因此对操作码的编码至关重要。通常是在指令字中用一个固定长度编码至关重要。通常是在指令字中用一个固定长度的字段来表示基本操作码,而对于一部分不需要某的字段来表示基本操作码,而对于一部分不需要某个地址码的指令,则把它们的操作码扩展到该地址个地址码的指令,则把它们的操作码扩展到该地址字段,这样,既能充分地利用指令字的各个字段,字段,这样,既能充分地利用指令字的各个字段,又能在不增加指令长度的情况下扩展操作码的长度,又能在不增加指令长度的情况下扩展操作码

15、的长度,使它可以表示更多的指令。例如,设某机器的指令使它可以表示更多的指令。例如,设某机器的指令长度为长度为16位,包括位,包括4位基本操作码字段和位基本操作码字段和3个个4位地位地址字段,其格式如图址字段,其格式如图5-1所示。所示。图图5-1指令格式指令格式计算机组成原理 指令系统http:/5.2.2指令操作码的扩展技术指令操作码的扩展技术(1)15条三地址指令的操作码由条三地址指令的操作码由4位基本操作码给出,位基本操作码给出,范围为范围为00001110,剩下一个码点,剩下一个码点1111用于把用于把操作码扩展到操作码扩展到A1,即从,即从4位扩展到位扩展到8位。位。(2)15条二地

16、址指令的操作码由扩展后的条二地址指令的操作码由扩展后的8位操作码给位操作码给出,范围为出,范围为1111000011111110,剩下一个码,剩下一个码点点11111111用于把操作码扩展到用于把操作码扩展到A2,即从,即从8位扩位扩展到展到12位。位。(3)15条一地址指令的操作码由条一地址指令的操作码由12位操作码给出,范位操作码给出,范围为围为111111110000111111111110,剩下一,剩下一个码点个码点111111111111用于把操作码扩展到用于把操作码扩展到A3,即从即从12位扩展到位扩展到16位。位。(4)16条零地址指令的操作码使用条零地址指令的操作码使用16位,

17、范围为位,范围为11111111111100001111111111111111。计算机组成原理 指令系统http:/5.2.2指令操作码的扩展技术指令操作码的扩展技术除了上述方法外,还有其他许多扩展方法,如可除了上述方法外,还有其他许多扩展方法,如可以形成以形成15条三地址指令、条三地址指令、14条两地址指令、条两地址指令、31条条一地址指令和一地址指令和16条零地址指令,共条零地址指令,共76条指令。实条指令。实际上,指令操作码是有空余的。在可变长度的指令际上,指令操作码是有空余的。在可变长度的指令系统的设计中,到底使用何种扩展方法,所要遵循系统的设计中,到底使用何种扩展方法,所要遵循的一

18、个重要原则是,使用频度的一个重要原则是,使用频度(即指令在程序中出现即指令在程序中出现的概率的概率)高的指令应分配较短的操作码;使用频度低高的指令应分配较短的操作码;使用频度低的指令应分配较长的操作码。这样,不仅可以有效的指令应分配较长的操作码。这样,不仅可以有效地缩短操作码在程序中的平均长度,节省存储器空地缩短操作码在程序中的平均长度,节省存储器空间,而且缩短了经常使用的指令的译码时间,因而间,而且缩短了经常使用的指令的译码时间,因而可以提高程序的运行速度。可以提高程序的运行速度。计算机组成原理 指令系统http:/5.2.2指令操作码的扩展技术指令操作码的扩展技术这里特别强调指出,计算机中

19、的指令操作码总是这里特别强调指出,计算机中的指令操作码总是希望有一定的规整性,否则会使硬件实现复杂化。希望有一定的规整性,否则会使硬件实现复杂化。此外,为了便于在计算机内存放,指令的长度一般此外,为了便于在计算机内存放,指令的长度一般是字节的整数倍,所以操作码与地址码两部分长度是字节的整数倍,所以操作码与地址码两部分长度之和就应该是字节的整数倍,因此在考虑操作码长之和就应该是字节的整数倍,因此在考虑操作码长度时还应考虑地址码的要求。度时还应考虑地址码的要求。由此可见,操作码扩展技术是一种重要的指令优由此可见,操作码扩展技术是一种重要的指令优化技术,它可以缩短指令的平均长度,减少程序的化技术,它

20、可以缩短指令的平均长度,减少程序的总位数以及增加指令字所能表示的操作信息。扩展总位数以及增加指令字所能表示的操作信息。扩展操作码比固定操作码译码复杂,使控制器的设计难操作码比固定操作码译码复杂,使控制器的设计难度增大,也需要更多的硬件来支持。度增大,也需要更多的硬件来支持。计算机组成原理 指令系统http:/5.2.3指令长度与字长的关系指令长度与字长的关系字长是指计算机能直接处理的二进制数据的位数,字长是指计算机能直接处理的二进制数据的位数,它与计算机的功能和用途有很大的关系,是计算机它与计算机的功能和用途有很大的关系,是计算机的一个重要技术指标。首先,字长决定了计算机的的一个重要技术指标。

21、首先,字长决定了计算机的运算精度,字长越长,计算机的运算精度越高,因运算精度,字长越长,计算机的运算精度越高,因此,高性能的计算机字长较长,而性能较差的计算此,高性能的计算机字长较长,而性能较差的计算机字长相对要短。其次,地址长度决定了指令直接机字长相对要短。其次,地址长度决定了指令直接寻址能力,若为寻址能力,若为n 位,则给出的位,则给出的n 位直接地址可以位直接地址可以寻址寻址2n字节。这对于字长较短字节。这对于字长较短(8位或位或16位位)的微型的微型机来说,远远满足不了实际需要。扩大寻址能力的机来说,远远满足不了实际需要。扩大寻址能力的方法,一是通过增加机器字长来增加地址码的长度;方法

22、,一是通过增加机器字长来增加地址码的长度;二是采用地址扩展技术,把存储空间分成若干个段,二是采用地址扩展技术,把存储空间分成若干个段,用基地址加位移量的方法来增加地址码的长度。用基地址加位移量的方法来增加地址码的长度。计算机组成原理 指令系统http:/5.2.3指令长度与字长的关系指令长度与字长的关系为了便于处理字符数据和尽可能地充分利用存储为了便于处理字符数据和尽可能地充分利用存储空间,一般机器字长都是字节长度空间,一般机器字长都是字节长度(即即8位位)的的1、2、4或或8倍,也就是倍,也就是8、16、32、64位。位。20世纪世纪80年年代的微型机的字长多为代的微型机的字长多为8、16和

23、和32位,大中型机的位,大中型机的字长多为字长多为32位和位和64位,因此,一个字中可以存储位,因此,一个字中可以存储1、2、4或或8个字符。随着电路集成度的提高,机器字个字符。随着电路集成度的提高,机器字长也在增长,长也在增长,16位微机也趋于淘汰。位微机也趋于淘汰。指令的长度主要取决于操作码的长度、操作数地指令的长度主要取决于操作码的长度、操作数地址的长度和操作数地址的个数。由于操作码的长度、址的长度和操作数地址的个数。由于操作码的长度、操作数地址的长度及所采用的格式不同,各指令的操作数地址的长度及所采用的格式不同,各指令的长度不是固定的,但也不是任意的。为了充分利用长度不是固定的,但也不

24、是任意的。为了充分利用存储空间,指令的长度通常为字节的整数倍。存储空间,指令的长度通常为字节的整数倍。计算机组成原理 指令系统http:/5.2.3指令长度与字长的关系指令长度与字长的关系指令的长度与机器的字长没有固定关系,它既可指令的长度与机器的字长没有固定关系,它既可以小于或等于机器的字长,也可以大于机器字长。以小于或等于机器的字长,也可以大于机器字长。前者称为短格式指令,后者称为长格式指令,一条前者称为短格式指令,后者称为长格式指令,一条指令存放在地址连续的存储单元中。在同一台计算指令存放在地址连续的存储单元中。在同一台计算机中可能既有短格式指令,又有长格式指令,但通机中可能既有短格式指

25、令,又有长格式指令,但通常是把最常用的指令常是把最常用的指令(如算术逻辑运算指令、数据传如算术逻辑运算指令、数据传送指令送指令)设计成短格式指令,以便节省存储空间和提设计成短格式指令,以便节省存储空间和提高指令的执行速度。高指令的执行速度。计算机组成原理 指令系统http:/5.3数据的表示和存储数据的表示和存储计算机中的基本数据有逻辑计算机中的基本数据有逻辑(布尔布尔)数、定点数数、定点数(整数整数)、浮点数、浮点数(实数实数)、十进制、字符串、数组等。、十进制、字符串、数组等。对这些数据的运算可以设置专门的指令,也可以仅对这些数据的运算可以设置专门的指令,也可以仅设置最简单的算术逻辑运算指

26、令,再通过执行程序设置最简单的算术逻辑运算指令,再通过执行程序来实现对其他类型数据的处理,但后者的速度下降来实现对其他类型数据的处理,但后者的速度下降许多。在机器中,若设置能直接对矩阵向量数据许多。在机器中,若设置能直接对矩阵向量数据(数数组组)进行运算的指令进行运算的指令(增加相应的硬件增加相应的硬件),可以大大提,可以大大提高对向量高对向量(数组数组)的处理速度,这一般只在巨型计算的处理速度,这一般只在巨型计算机中才采用。机中才采用。目前计算机所用的数据字长一般为目前计算机所用的数据字长一般为32位,而存储位,而存储器地址一般按字节表示,即一个存储单元只能存放器地址一般按字节表示,即一个存

27、储单元只能存放一个字节的数据,因此一条指令通常要占用几个存一个字节的数据,因此一条指令通常要占用几个存储单元,使用几个存储器地址。储单元,使用几个存储器地址。计算机组成原理 指令系统http:/5.3数据的表示和存储数据的表示和存储计算机指令系统可支持对字节、半字、字、双字计算机指令系统可支持对字节、半字、字、双字的运算,有些计算机有位处理指令。为便于硬件实的运算,有些计算机有位处理指令。为便于硬件实现,一般要求多字节数据对准边界,如图现,一般要求多字节数据对准边界,如图5-2(a)所所示。当所存数据不能满足此要求时,则填充一个或示。当所存数据不能满足此要求时,则填充一个或多个空白字节。也有的

28、计算机不要求对准边界,但多个空白字节。也有的计算机不要求对准边界,但可能增加访问存储器次数。假如存储器与运算部件可能增加访问存储器次数。假如存储器与运算部件间数据通路的宽度为间数据通路的宽度为32位位(一个字一个字),在不按边界对,在不按边界对准的计算机中,访存指令所要求存取的数据准的计算机中,访存指令所要求存取的数据(例如一例如一个字个字)可能在两个存储单元中,因此需要访问两次存可能在两个存储单元中,因此需要访问两次存储器,而且还要对高低字节的位置进行调整,图储器,而且还要对高低字节的位置进行调整,图5-2(b)中的阴影部分即属这种情况。中的阴影部分即属这种情况。计算机组成原理 指令系统ht

29、tp:/(a)多字节数据对准边界多字节数据对准边界图图5-2存储器中数据的存放举例存储器中数据的存放举例(b)数据不对准边数据不对准边界界计算机组成原理 指令系统http:/5.3数据的表示和存储数据的表示和存储在数据对准边界的计算机中,当以二进制来表示在数据对准边界的计算机中,当以二进制来表示地址时,半字地址的最低位恒为零,字地址的最低地址时,半字地址的最低位恒为零,字地址的最低两位为零,双字地址的最低三位为零。图两位为零,双字地址的最低三位为零。图5-3为按为按字节编址的双字数据的两种字节次序:低字节为低字节编址的双字数据的两种字节次序:低字节为低地址,如图地址,如图5-3(a)所示;高字

30、节为低地址,如图所示;高字节为低地址,如图5-3(b)所示。所示。(a)低字节为低地低字节为低地址址(b)高字节为低地址高字节为低地址图图5-3两种字节次序两种字节次序计算机组成原理 指令系统http:/5.4寻寻址址方方式式在执行一条指令的时候,操作数可能在运算部件在执行一条指令的时候,操作数可能在运算部件的某个寄存器中或存储器中,也可能就在本指令中。的某个寄存器中或存储器中,也可能就在本指令中。正在运行的程序总是存放在存储器正在运行的程序总是存放在存储器(内存内存)中,正在中,正在执行的指令总是在执行的指令总是在CPU内控制器的指令寄存器中。内控制器的指令寄存器中。所谓寻址方式所谓寻址方式

31、(或编址方式或编址方式)指的是确定本条指令的指的是确定本条指令的数据地址及下一条要执行的指令地址的方法,它与数据地址及下一条要执行的指令地址的方法,它与计算机硬件结构紧密相关,而且对指令格式和功能计算机硬件结构紧密相关,而且对指令格式和功能影响很大。从程序员角度看,寻址方式与汇编程序影响很大。从程序员角度看,寻址方式与汇编程序设计的关系极为密切;与高级语言的编译程序设计设计的关系极为密切;与高级语言的编译程序设计也同样密切。不同的计算机有不同的寻址方式,但也同样密切。不同的计算机有不同的寻址方式,但其基本原理是相同的。有的计算机寻址种类少,因其基本原理是相同的。有的计算机寻址种类少,因此在指令

32、的操作码中表示出寻址方式;而有的计算此在指令的操作码中表示出寻址方式;而有的计算计算机组成原理 指令系统http:/5.4寻寻址址方方式式机采用多种寻址方式,此时在指令中专设一个字机采用多种寻址方式,此时在指令中专设一个字段表示一个操作数的来源或去向。这里仅介绍几段表示一个操作数的来源或去向。这里仅介绍几种被广泛采用的基本寻址方式。在一些计算机中,种被广泛采用的基本寻址方式。在一些计算机中,某些寻址方式可以组合使用,从而形成更复杂的某些寻址方式可以组合使用,从而形成更复杂的寻址方式。寻址方式。计算机组成原理 指令系统http:/5.4寻寻址址方方式式1.直接寻址直接寻址对直接寻址方式来说,指令

33、的地址码部分直接给出对直接寻址方式来说,指令的地址码部分直接给出操作数在存储器中的地址,图操作数在存储器中的地址,图5-4(a)仅给出一个操作仅给出一个操作数地址;当有多个地址时,情况类似。直接寻址方式数地址;当有多个地址时,情况类似。直接寻址方式可以由操作码表示出来。图可以由操作码表示出来。图5-4(b)在指令中增加了一在指令中增加了一个寻址方式字段个寻址方式字段M,假如,假如M为为3位二进制码,则可表位二进制码,则可表示示8种寻址方式。种寻址方式。图图5-4直接寻址方式直接寻址方式计算机组成原理 指令系统http:/5.4寻寻址址方方式式2.寄存器寻址寄存器寻址计算机的中央处理器中一般设置

34、有一定数量的通计算机的中央处理器中一般设置有一定数量的通用寄存器,用以存放操作数、操作数的地址或中间用寄存器,用以存放操作数、操作数的地址或中间结果。假如地址码部分给出某一通用寄存器地址,结果。假如地址码部分给出某一通用寄存器地址,而且所需的操作数就在这一寄存器中,则称为寄存而且所需的操作数就在这一寄存器中,则称为寄存器寻址。通用寄存器的数量一般在几个至几十个之器寻址。通用寄存器的数量一般在几个至几十个之间,比存储单元少得多,因此地址码短,而且对寄间,比存储单元少得多,因此地址码短,而且对寄存器存取数据比对存储器存取数据快得多,所以这存器存取数据比对存储器存取数据快得多,所以这种寻址方式可以缩

35、短指令长度,节省存储空间,提种寻址方式可以缩短指令长度,节省存储空间,提高指令的执行速度,因而在计算机中得到广泛应用。高指令的执行速度,因而在计算机中得到广泛应用。计算机组成原理 指令系统http:/5.4寻寻址址方方式式3.基址寻址基址寻址基址寻址是指在计算机中设置一个专用的基址寄存基址寻址是指在计算机中设置一个专用的基址寄存器,或由指令指定一个通用寄存器作为基址寄存器,或由指令指定一个通用寄存器作为基址寄存器。操作数的地址由基址寄存器的内容和指令的器。操作数的地址由基址寄存器的内容和指令的地址码地址码A相加得到,如图相加得到,如图5-5所示。在这种情况下,所示。在这种情况下,地址码地址码A

36、通常被称为位移量通常被称为位移量(Disp)。也可用其他。也可用其他方法获得位移量。方法获得位移量。图图5-5基址寻址过程基址寻址过程计算机组成原理 指令系统http:/5.4寻寻址址方方式式4.变址寻址变址寻址变址寻址的过程如图变址寻址的过程如图5-6所示。指令地址码部分给所示。指令地址码部分给出的地址出的地址A和指定的变址寄存器和指定的变址寄存器R的内容通过加法的内容通过加法器相加,所得的和作为地址从存储器中读出所需的器相加,所得的和作为地址从存储器中读出所需的操作数。这是几乎所有计算机都采用的一种寻址方操作数。这是几乎所有计算机都采用的一种寻址方式。如果计算机中还有基址寄存器,则在计算有

37、效式。如果计算机中还有基址寄存器,则在计算有效地址时还要加上基址寄存器内容。地址时还要加上基址寄存器内容。图图5-6变址寻址过程变址寻址过程计算机组成原理 指令系统http:/5.4寻寻址址方方式式5.间接寻址间接寻址在寻址时,若根据指令的地址码所取出的内容是操作在寻址时,若根据指令的地址码所取出的内容是操作数的地址或指令地址,这种寻址方式就称为间接寻址数的地址或指令地址,这种寻址方式就称为间接寻址或间址。根据地址码指的是寄存器地址还是存储器地或间址。根据地址码指的是寄存器地址还是存储器地址,间接寻址又可分为寄存器间接寻址和存储器间接址,间接寻址又可分为寄存器间接寻址和存储器间接寻址两种方式。

38、间接寻址有一次间址和多次间址两种寻址两种方式。间接寻址有一次间址和多次间址两种情况,大多数计算机只允许一次间址。对于存储器一情况,大多数计算机只允许一次间址。对于存储器一次间址来说,需要访问两次存储器才能取得数据,第次间址来说,需要访问两次存储器才能取得数据,第一次从存储器读出的是操作数的地址,第二次才读出一次从存储器读出的是操作数的地址,第二次才读出操作数。操作数。计算机组成原理 指令系统http:/5.4寻寻址址方方式式图图5-7(a)、(b)分分别别为为寄寄存存器器间间接接寻寻址址与与存存储储器器间间接接寻寻址址的的操操作作数数寻寻址址过过程程。图图5-8以以转转移移指指令令JUMP为为

39、例例,说说明明在在直直接接寻寻址址和和间间接接寻寻址址方方式式下下,如如何何确确定定下下一条要执行的指令地址。一条要执行的指令地址。(a)寄存器间接寻址寄存器间接寻址(b)存储器间接寻址存储器间接寻址图图5-7间接寻址过程间接寻址过程计算机组成原理 指令系统http:/(a)直接寻址直接寻址(b)间接寻址间接寻址图图5-8确定确定JUMP指令的转移地址指令的转移地址计算机组成原理 指令系统http:/5.4寻寻址址方方式式6.相对寻址相对寻址把程序计数器把程序计数器PC的内容的内容(即当前正在执行的指令地址即当前正在执行的指令地址)与地址码部分给出的位移量与地址码部分给出的位移量(Disp)之

40、和作为操作数之和作为操作数的地址或转移地址,称为相对地址。主要用于转移的地址或转移地址,称为相对地址。主要用于转移指令,执行本条指令之后,将转移到指令,执行本条指令之后,将转移到(PC)+Disp,(PC)表示程序计数器的内容。相对寻址有两个特点:表示程序计数器的内容。相对寻址有两个特点:第一,转移地址不是固定的,它随着第一,转移地址不是固定的,它随着PC值的变化而值的变化而变化,并且总是相差一个固定值变化,并且总是相差一个固定值Disp,因此无论程,因此无论程序装入存储器的任何地方,均能正确运行,对浮动序装入存储器的任何地方,均能正确运行,对浮动程序很适用。第二,位移量可正可负,通常用补码程

41、序很适用。第二,位移量可正可负,通常用补码表示。若位移量为表示。若位移量为n位,则这种方式的寻址范围在到位,则这种方式的寻址范围在到之间。之间。计算机组成原理 指令系统http:/5.4寻寻址址方方式式当前计算机的程序和数据一般是分开存放的,程序区当前计算机的程序和数据一般是分开存放的,程序区在程序执行过程中不允许修改。在程序与数据分区存在程序执行过程中不允许修改。在程序与数据分区存放的情况下,不用相对寻址方式来确定操作数地址。放的情况下,不用相对寻址方式来确定操作数地址。7.立即数立即数所需的操作数由指令的地址码部分直接给出,就称为所需的操作数由指令的地址码部分直接给出,就称为立即数立即数(

42、或直接数或直接数)寻址方式。这种方式的特点是,取寻址方式。这种方式的特点是,取指时操作码和一个操作数同时被取出,不必再次访问指时操作码和一个操作数同时被取出,不必再次访问存储器,提高了指令的执行速度。但是由于这一操作存储器,提高了指令的执行速度。但是由于这一操作数是指令的一部分,不能修改,而一般情况下,指令数是指令的一部分,不能修改,而一般情况下,指令所处理的数据都是在不断变化的所处理的数据都是在不断变化的(如上条指令执行的结如上条指令执行的结果是下条指令的操作数果是下条指令的操作数),故这种方式只能适用于操作,故这种方式只能适用于操作数固定的情况。通常用于给某一寄存器或存储器单元数固定的情况

43、。通常用于给某一寄存器或存储器单元赋初值或提供一个常数。赋初值或提供一个常数。计算机组成原理 指令系统http:/5.5 指 令 类 型一一台台计计算算机机的的指指令令系系统统通通常常有有几几十十条条至至几几百百条条指指令令,按按其其所所完完成成的的功功能能可可分分为为算算术术逻逻辑辑运运算算指指令令、移移位位操操作作指指令令、浮浮点点运运算算指指令令、十十进进制制运运算算指指令令、字字符符串串处处理理指指令令、向向量量运运算算指指令令、数数据据传传送送指指令令、转转移移类类指指令令、堆堆栈栈操操作作指指令令、输输入入/输输出出指指令令、特权指令。本节分别说明各类指令的功能。特权指令。本节分别

44、说明各类指令的功能。计算机组成原理 指令系统http:/5.5 指 令 类 型1.算术逻辑运算指令算术逻辑运算指令一般计算机都有算术逻辑运算指令。通常计算机一般计算机都有算术逻辑运算指令。通常计算机具有对两个数进行与、或、非具有对两个数进行与、或、非(求反求反)、异或、异或(按位加按位加)等操作的逻辑运算指令。有些计算机还设置有位操等操作的逻辑运算指令。有些计算机还设置有位操作指令,如位测试作指令,如位测试(测试指定位的值测试指定位的值)、位清除、位清除(把指把指定位清零定位清零)、位求反、位求反(取某位的反值取某位的反值)指令等。指令等。2.移位操作指令移位操作指令移位操作指令分为算术移位、

45、逻辑移位和循环移移位操作指令分为算术移位、逻辑移位和循环移位位3种,可以将操作数左移或右移若干位,如图种,可以将操作数左移或右移若干位,如图5-9所示。所示。计算机组成原理 指令系统http:/图图5-9各种移位的操作过程各种移位的操作过程计算机组成原理 指令系统http:/5.5 指 令 类 型3.浮点运算指令浮点运算指令高级语言中的实数高级语言中的实数(Real)经常是先转换成浮点数经常是先转换成浮点数的形式再进行处理。某些机器没有设置浮点运算指的形式再进行处理。某些机器没有设置浮点运算指令而用子程序实现,其速度较低。因此主要用于科令而用子程序实现,其速度较低。因此主要用于科学计算的计算机

46、应该设置浮点运算指令,一般能对学计算的计算机应该设置浮点运算指令,一般能对单精度单精度(32位位)、双精度、双精度(64位位)数据进行处理。数据进行处理。4.十进制运算指令十进制运算指令在人机交互作用时,输入在人机交互作用时,输入/输出的数据都是以十进输出的数据都是以十进制形式表示的。在某些数据处理系统中输入制形式表示的。在某些数据处理系统中输入/输出输出的数据很多,但对数据本身的处理却很简单。在不的数据很多,但对数据本身的处理却很简单。在不具有十进制运算指令的计算机中,首先将十进制数具有十进制运算指令的计算机中,首先将十进制数转换成二进制数,再在机器内运算;而后又转换成转换成二进制数,再在机

47、器内运算;而后又转换成十进制数据输出。在输入十进制数据输出。在输入/输出频繁的计算机系统输出频繁的计算机系统中,设置十进制运算指令能提高数据处理的速度。中,设置十进制运算指令能提高数据处理的速度。计算机组成原理 指令系统http:/5.5 指 令 类 型5.字符串处理指令字符串处理指令字符串处理指令是一种非数值数据的处理指令,字符串处理指令是一种非数值数据的处理指令,一般包括字符串传送、字符串比较、字符串查询、一般包括字符串传送、字符串比较、字符串查询、字符串转换等指令。其中,字符串传送指令所完字符串转换等指令。其中,字符串传送指令所完成的操作是将数据块从主存储器的某区域传送到成的操作是将数据

48、块从主存储器的某区域传送到另一区域;字符串比较指令所完成的操作是将一另一区域;字符串比较指令所完成的操作是将一个字符串与另一个字符串逐个字符进行比较,以个字符串与另一个字符串逐个字符进行比较,以确定其是否相等;字符串查询是查找在字符串中确定其是否相等;字符串查询是查找在字符串中是否含有另一指定的子串或字符;字符串转换是是否含有另一指定的子串或字符;字符串转换是指将一种数据表达形式转换成另一种表达形式,指将一种数据表达形式转换成另一种表达形式,例如从例如从ASCII码转换成码转换成EBCDIC码码(扩充的二扩充的二-十进十进制交换码制交换码)。这种指令在需对大量字符串进行各种。这种指令在需对大量

49、字符串进行各种处理的文字编辑和排版方面非常有用。处理的文字编辑和排版方面非常有用。计算机组成原理 指令系统http:/5.5 指 令 类 型6.数据传送指令数据传送指令数据传递指令用以实现寄存器与寄存器、寄存器数据传递指令用以实现寄存器与寄存器、寄存器与存储器单元、存储器单元与存储器单元之间的数与存储器单元、存储器单元与存储器单元之间的数据传送。对于存储器来讲,数据传送包括了对数据据传送。对于存储器来讲,数据传送包括了对数据的读的读(相当于取数指令相当于取数指令)或写或写(相当于存数指令相当于存数指令)操作。操作。数据传送时,数据从源地址传送到目的地址,而源数据传送时,数据从源地址传送到目的地

50、址,而源地址中的数据保持不变,因此实际上是数据复制。地址中的数据保持不变,因此实际上是数据复制。7.转移类指令转移类指令转移类指令用以控制程序流的转移。在大多数情转移类指令用以控制程序流的转移。在大多数情况下,计算机是按顺序方式执行程序的,但是也经况下,计算机是按顺序方式执行程序的,但是也经常会遇到离开原来的顺序转移到另一段程序或循环常会遇到离开原来的顺序转移到另一段程序或循环执行某段程序的情况。执行某段程序的情况。计算机组成原理 指令系统http:/5.5 指 令 类 型按转移的性质,转移指令分为无条件转移、条件按转移的性质,转移指令分为无条件转移、条件转移、过程调用与返回、陷阱转移、过程调

51、用与返回、陷阱(Trap)等几种。等几种。1)无条件转移与条件转移无条件转移与条件转移2)调用指令与返回指令调用指令与返回指令3)陷阱与陷阱指令陷阱与陷阱指令8.堆栈及堆栈操作指令堆栈及堆栈操作指令堆栈堆栈(Stack)是由若干个连续存储单元组成的先进后是由若干个连续存储单元组成的先进后出出(FILO)存储区,第一个送入堆栈中的数据存放在存储区,第一个送入堆栈中的数据存放在栈底,最近送入堆栈中的数据存放在栈顶。栈底是栈底,最近送入堆栈中的数据存放在栈顶。栈底是固定不变的,而栈顶却是随着数据的入栈和出栈在固定不变的,而栈顶却是随着数据的入栈和出栈在不断变化。为了表示栈顶的位置,有一个寄存器或不断

52、变化。为了表示栈顶的位置,有一个寄存器或存储器单元用于指出栈顶的地址,这个寄存器或存存储器单元用于指出栈顶的地址,这个寄存器或存储器单元就称为堆栈指针储器单元就称为堆栈指针SP(StackPointer)。任何。任何堆栈操作只能在栈顶进行。堆栈操作只能在栈顶进行。计算机组成原理 指令系统http:/5.5 指 令 类 型压入指令压入指令PUSHOPR把把OPR(长度为两个字节长度为两个字节)压入堆栈压入堆栈操作是:操作是:(SP)-2SP,OPR(SP)弹出指令弹出指令POPOPR弹出一个数据弹出一个数据(长度为两个字节长度为两个字节)送送OPR操作是:操作是:(SP)OPR,(SP)+2SP

53、由于堆栈具有先进后出的性质,因而在中断、子程序由于堆栈具有先进后出的性质,因而在中断、子程序调用过程中广泛用于保存返回地址、状态标志及现场调用过程中广泛用于保存返回地址、状态标志及现场信息。信息。堆栈还有一个重要的作用,就是用于子程序调用时参堆栈还有一个重要的作用,就是用于子程序调用时参数的传递,特别是在不同语言程序之间相互调用过程数的传递,特别是在不同语言程序之间相互调用过程中,使用堆栈来传递数据更加普遍。中,使用堆栈来传递数据更加普遍。计算机组成原理 指令系统http:/5.5 指 令 类 型9.输入输入/输出输出(I/O)指令指令计算机所处理的一切原始数据和所执行的程序计算机所处理的一切

54、原始数据和所执行的程序(除除了固化在了固化在ROM中的以外中的以外)均来自外部设备的输入,处均来自外部设备的输入,处理结果需要外部设备输出。输入理结果需要外部设备输出。输入/输出指令的一般格式输出指令的一般格式是是OPREGA。其中,。其中,OP是操作码,表示是操作码,表示I/O指令。指令。REG是寄存器名,用于指定与外部设备交换数据的是寄存器名,用于指定与外部设备交换数据的CPU中的某寄存器。中的某寄存器。A是外部设备接口中的寄存器地是外部设备接口中的寄存器地址或设备码,其长度一般为址或设备码,其长度一般为8位或位或16位,可以表示位,可以表示25664K个设备寄存器个设备寄存器(接口中有接

55、口中有3类寄存器,即输入数类寄存器,即输入数据寄存器、输出数据寄存器和控制寄存器据寄存器、输出数据寄存器和控制寄存器)。输入指令。输入指令用于从用于从A地址所指定的外部设备寄存器中读入一个数据地址所指定的外部设备寄存器中读入一个数据到到REG寄存器中;输出指令刚好相反,把寄存器中;输出指令刚好相反,把REG寄存器寄存器中的数中的数计算机组成原理 指令系统http:/5.5 指 令 类 型据送到据送到A地址所指定的外部设备寄存器中。此外,地址所指定的外部设备寄存器中。此外,I/O指令还可用来发送控制命令和接收回答信号,用以控指令还可用来发送控制命令和接收回答信号,用以控制外部设备的工作。制外部设

56、备的工作。10.特权指令特权指令某些指令使用不当会破坏系统或其他用户信息,因某些指令使用不当会破坏系统或其他用户信息,因此为了安全起见,这类指令只能用于操作系统或其他此为了安全起见,这类指令只能用于操作系统或其他系统软件,而不提供给用户使用,称为特权指令。系统软件,而不提供给用户使用,称为特权指令。11.其他指令其他指令其他指令包括向量指令、多处理机指令和控制指令。其他指令包括向量指令、多处理机指令和控制指令。控制指令包括等待指令,停机指令,空操作指令,开控制指令包括等待指令,停机指令,空操作指令,开中断、关中断、置条件码指令。中断、关中断、置条件码指令。计算机组成原理 指令系统http:/5

57、.6 指令系统举例下下面面通通过过几几种种类类型型计计算算机机指指令令系系统统的的介介绍绍来来增增加加认认识识,这这些些计计算算机机(或或处处理理器器)是是Sun微微系系统统公公司司的的SPARC90(RISC)、IBM360/370系系列列(CISC)、PDP11/VAX11(CISC)系系列列,Intel公公司司的的Pentium系系列列(基于基于RISC的处理器内核的处理器内核)。计算机组成原理 指令系统http:/5.6 指令系统举例n5.6.1SPARC的指令系统的指令系统n5.6.2IBM大型机指令系统大型机指令系统n5.6.3PDP11与与VAX11基本指令格式基本指令格式n5.

58、6.4Pentium的指令系统的指令系统计算机组成原理 指令系统http:/5.6.1SPARC的指令系统的指令系统SPARC指令字长指令字长32位,有位,有3种指令格式、种指令格式、6种指令种指令类型。类型。1SPARC的指令类型的指令类型1)算术运算算术运算/逻辑运算逻辑运算/移位指令移位指令n加法指令加法指令4条:条:ADD、ADDCC、ADDX、ADDXCC。n减法指令减法指令4条:条:SUB、SUBCC、SUBX、SUBXCC。n检查标记的加法指令检查标记的加法指令2条:条:TADDCC、TADDCCTV。n检查标记的减法指令检查标记的减法指令2条:条:TSUBCC、TSUBCCTV

59、。n逻辑运算指令共逻辑运算指令共12条:条:AND、ANDCC、ANDN、ANDNCC;OR、ORCC、ORN、ORNCC;XOR、XORCC、XORN、XORNCC。计算机组成原理 指令系统http:/5.6.1SPARC的指令系统的指令系统n移位指令移位指令3条:条:SLL(逻辑左移逻辑左移)、SRL(逻辑右移逻辑右移)、SRA(算术右移算术右移)。n其他还有乘法步、其他还有乘法步、SETHI、SAVE、RESTORE等。等。SAVE和和RESTORE两条指令分别将现行窗口指针减两条指令分别将现行窗口指针减1和加和加1。n现在对现在对4条加法指令进行说明。以条加法指令进行说明。以CC结尾的

60、加法指结尾的加法指令表示除了进行加法运算以外还要根据运算结果置令表示除了进行加法运算以外还要根据运算结果置状态触发器状态触发器N、Z、V、C;X表示加进位信号;表示加进位信号;XCC表示加进位信号并置表示加进位信号并置N、Z、V、C。2)LOAD/STORE指令指令n取取/存字节存字节(LDSB/STB)、半字、字、双字共、半字、字、双字共20条指条指令,其中一半是特权指令。令,其中一半是特权指令。计算机组成原理 指令系统http:/5.6.1SPARC的指令系统的指令系统SPARC结构将存储器分成若干区,其中有结构将存储器分成若干区,其中有4个区分个区分别为用户程序区、用户数据区、系统程序区

61、和系统别为用户程序区、用户数据区、系统程序区和系统数据区。并规定在执行用户程序时,只能从用户程数据区。并规定在执行用户程序时,只能从用户程序区取指令,在用户数据区存取数据;而执行系统序区取指令,在用户数据区存取数据;而执行系统程序时则可以使用特权指令访问任一区。程序时则可以使用特权指令访问任一区。n另外还有两条供多处理机系统使用的数据交换指令另外还有两条供多处理机系统使用的数据交换指令SWAP和读后置字节指令和读后置字节指令LDSTUB。3)控制转移类指令控制转移类指令5条。条。4)读读/写专用寄存器指令写专用寄存器指令8条。条。以上指令共计以上指令共计66条。条。5)浮点运算指令。浮点运算指

62、令。6)协处理器指令。协处理器指令。计算机组成原理 指令系统http:/5.6.1SPARC的指令系统的指令系统由由于于SPARC为为整整数数运运算算部部件件(IU),所所以以当当执执行行浮浮点点运运算算指指令令或或协协处处理理器器指指令令时时,将将交交给给浮浮点点运运算算器器或或协协处处理理器器处处理理,当当机机器器没没有有配配置置这这种种部部件件时时,将将通过子程序实现。通过子程序实现。2SPARC的指令格式的指令格式格式格式1:CALL指令指令格式格式2:SETHI指令和指令和BRANCH指令指令计算机组成原理 指令系统http:/5.6.1SPARC的指令系统的指令系统格式格式3:其他

63、指令:其他指令3.各类指令的功能及寻址方式各类指令的功能及寻址方式下面简单介绍第一类至第四类指令。下面简单介绍第一类至第四类指令。1)算术逻辑运算指令算术逻辑运算指令功能:功能:(rs1)OP(rs2)rd (当当i=0时时)(rs1)OPSimm13rd(当当i=1时时)RISC的特点之一是所有参与算术逻辑运算的数均的特点之一是所有参与算术逻辑运算的数均在寄存器中。在寄存器中。计算机组成原理 指令系统http:/5.6.1SPARC的指令系统的指令系统2)LOAD/STORE指令指令(取数取数/存数指令存数指令)功能:功能:LOAD指令将存储器中的数据送往指令将存储器中的数据送往rd中;中;

64、STORE指令将指令将rd的内容送往存储器中。的内容送往存储器中。存储器地址的计算存储器地址的计算(寄存器间接寻址方式寄存器间接寻址方式):当:当i=0时,存储器地址时,存储器地址=(rs1)+(rs2);当;当i=1时,存储器时,存储器地址地址=(rs1)+Simm13。在。在RISC中,只有中,只有LOAD/STORE指令访问存储器。指令访问存储器。3)控制转移类指令控制转移类指令控制转移类指令用于改变控制转移类指令用于改变PC值,值,SPARC有以下有以下5种种控制转移指令。控制转移指令。(1)条件转移条件转移(BRANCH):根据指令中的:根据指令中的Cond字段字段(条条件码件码)决

65、定程序是否转移。转移地址由相对寻址方式决定程序是否转移。转移地址由相对寻址方式形成。形成。计算机组成原理 指令系统http:/5.6.1SPARC的指令系统的指令系统(2)转移并连接转移并连接(JMPL):采用寄存器间址方式形成转:采用寄存器间址方式形成转移地址,并将本条指令的地址移地址,并将本条指令的地址(即即PC值值)保存在以保存在以rd为地址的寄存器中,以备程序返回时用。为地址的寄存器中,以备程序返回时用。(3)调用调用(CALL):采用相对寻址方式形成转移地址。:采用相对寻址方式形成转移地址。为了扩大寻址范围,本条指令的操作码只取两位,为了扩大寻址范围,本条指令的操作码只取两位,位移量

66、有位移量有30位。位。(4)陷阱陷阱(TRAP):采用寄存器间址方式形成转移地址。:采用寄存器间址方式形成转移地址。(5)从从TRAP程序返回程序返回(RETT):采用寄存器间址方式形:采用寄存器间址方式形成返回地址。成返回地址。4)读读/写专用寄存器指令写专用寄存器指令SPARC有有4个专用寄存器个专用寄存器(PSR、Y、WIM、TBR),其中,其中PSR称为程序状态寄存器。称为程序状态寄存器。计算机组成原理 指令系统http:/5.6.2IBM大型机指令系统大型机指令系统现在简单介绍现在简单介绍IBM360/370的结构及指令系统。的结构及指令系统。IBM360是是32位机器,按字节寻址,

67、支持的数据位机器,按字节寻址,支持的数据类型有字节、半字、字、双字类型有字节、半字、字、双字(双精度实数双精度实数)、装配、装配的十进制数的十进制数(用用4位二进制码表示一个十进制数,一位二进制码表示一个十进制数,一个字节放两个十进制数字个字节放两个十进制数字)和未经装配和未经装配(拆卸拆卸)的字符的字符串串(一个字节放一个字符一个字节放一个字符)。机内有。机内有16个个32位通用位通用寄存器,寄存器,4个双精度个双精度(64位位)浮点寄存器。浮点寄存器。IBM360/370有有5种指令格式,如图种指令格式,如图5-10所示。所示。计算机组成原理 指令系统http:/图图5-10IBM360/

68、370指令格式指令格式计算机组成原理 指令系统http:/5.6.2IBM大型机指令系统大型机指令系统(1)RR(寄存器寄存器-寄存器寄存器)格式:两个源操作数都在寄存格式:两个源操作数都在寄存器中,结果放在第一个源寄存器中。器中,结果放在第一个源寄存器中。(2)RX(寄存器寄存器-变址变址):第一个源操作数与结果放在同:第一个源操作数与结果放在同一寄存器中,第二个源操作数在存储器中,其地址一寄存器中,第二个源操作数在存储器中,其地址为为(X2)+(B2)+D2,D2为为12位位移量位位移量(无符号无符号)。(3)RS(寄存器寄存器-寄存器寄存器):R1是存放结果的目的寄存器,是存放结果的目的

69、寄存器,R3为源操作数寄存器,另一个操作数在存储器中,为源操作数寄存器,另一个操作数在存储器中,其地址为其地址为(B2)+D2。RS与与RX的区别在于的区别在于RS是三地是三地址格式,并取消了变址寄存器。址格式,并取消了变址寄存器。(4)SI(寄存器寄存器-立即数立即数):将立即数:将立即数imm(8位位)送到存送到存储器,其地址为储器,其地址为(B1)+D1。(5)SS(存储器存储器-存储器存储器):两个操作数都在存储器:两个操作数都在存储器计算机组成原理 指令系统http:/5.6.2IBM大型机指令系统大型机指令系统中,其地址分别为中,其地址分别为(B1)+D1和和(B2)+D2,(B1

70、)+D1还还是目的地址。是目的地址。SS格式用于十进制运算与字符串处理,格式用于十进制运算与字符串处理,数据长度数据长度(Length)字段可定义为字段可定义为1个长度个长度(1256个字符个字符)或两个长度或两个长度(每一个为每一个为116个十进制数个十进制数)。计算机组成原理 指令系统http:/5.6.3 PDP 11与VAX 11基本指令格式VAX11/780是是DEC公公司司于于1977年年推推出出的的VAX系系列列的的第第一一个个产产品品,它它将将PDP11结结构构从从16位位扩扩充充到到32位位。VAX是是一一种种通通用用寄寄存存器器机机器器,它它有有16个个通通用用寄寄存存器器

71、,但但是是R14是是堆堆栈栈指指针针,R15为为程程序序计计数数器器PC,是是专专用用的的,因因此此只只有有其其他他14个个才才是是真真正正的的通通用用寄寄存器。存器。VAX的的数数据据类类型型:整整数数有有8、16、32、64、128位位5种种类类型型,浮浮点点数数有有32、64、128位位3种种表表示示方方式式。另另外外有有8n位位字字符符串串、4n 位位BCD码码,其其中中n为为字字符符或或数数字字的的数数量量。VAX还还支支持持固固定定或或可可变变长长度度的的位位串串(最长为最长为32位位)处理。处理。计算机组成原理 指令系统http:/5.6.3 PDP 11与VAX 11基本指令格

72、式 PDP11是是16位小型机,它有两组通用寄存器位小型机,它有两组通用寄存器(R0R5),在任一时刻只有一组工作;,在任一时刻只有一组工作;3个硬件堆栈指个硬件堆栈指示器示器(R6);一个程序计数器;一个程序计数器PC(R7)。根据兼容性。根据兼容性质,质,VAX11应包括应包括PDP11的全部指令与寻址方式,的全部指令与寻址方式,即即PDP11上的程序不做任何修改即可在上的程序不做任何修改即可在VAX11上上运行。现以运行。现以PDP11的单操作数指令与双操作数指的单操作数指令与双操作数指令为例,对它们的指令格式与寻址方式作简单介绍。令为例,对它们的指令格式与寻址方式作简单介绍。计算机组成

73、原理 指令系统http:/5.6.3 PDP 11与VAX 11基本指令格式1.单操作数指令指令格式:指令格式:第第156位表示操作码。第位表示操作码。第50位组成一个位组成一个6位的字位的字段,既是源地址字段也是目的地址字段。第段,既是源地址字段也是目的地址字段。第20位位说明本指令使用说明本指令使用8个寄存器中的哪一个,第个寄存器中的哪一个,第53位表位表示使用哪种寻址方式。其中第示使用哪种寻址方式。其中第3位为位为0时表示直接寻时表示直接寻址,第址,第3位为位为1时表示间接寻址,第时表示间接寻址,第54位表示位表示4种种基本寻址方式。基本寻址方式。单操作数指令有清除单操作数指令有清除(C

74、LR)、增、增1(INC)、减、减1(DEC)、求补、求补(NEG)、测试、测试(TST)等。等。计算机组成原理 指令系统http:/5.6.3 PDP 11与VAX 11基本指令格式2.双操作数指令双操作数指令指令格式:指令格式:第第1512位表示操作码。第位表示操作码。第116位组成一个位组成一个6位字段,位字段,为源地址字段为源地址字段(第一操作数第一操作数);第;第50位组成另一个位组成另一个6位字段,既是源操作数字段位字段,既是源操作数字段(第二操作数第二操作数),也是目的,也是目的操作数字段。操作数字段。双操作数指令有传送双操作数指令有传送(MOV)、加、加(ADD)、减、减(SU

75、B)、比较、比较(CMP)、按位加、按位加(XOR)、逻辑加、逻辑加(BIS)等。等。计算机组成原理 指令系统http:/5.6.3 PDP 11与VAX 11基本指令格式3. 转移指令指令格式:指令格式:转移地址转移地址=PC+2位移量位移量4. 寻址方式这里只讲述单操作数指令与双操作数指令的寻址方式。这里只讲述单操作数指令与双操作数指令的寻址方式。1)直接寻址直接寻址表表5-1列出了直接寻址的列出了直接寻址的4种基本方式。现以种基本方式。现以ADD指令指令为例,来说明寻址方式。为例,来说明寻址方式。计算机组成原理 指令系统http:/方式方式名名 称称汇编程序程序语法法功功 能能0寄存器方

76、式寄存器方式Rn 寄存器内容是操作数寄存器内容是操作数2自动增量方自动增量方式式(Rn)+ 寄存器内容是操作数地址,完成指定操作后,寄存器内容是操作数地址,完成指定操作后,寄存器内容加寄存器内容加24自动减量方自动减量方式式- -(Rn) 寄存器内容寄存器内容减减2后作为操作数地址后作为操作数地址6变址方式变址方式X(Rn) X+(Rn)形成操作数地址,形成操作数地址,X值存放在紧跟指令后值存放在紧跟指令后的存储器单元的存储器单元表表5-1直接寻址方式直接寻址方式计算机组成原理 指令系统http:/5.6.3 PDP 11与VAX 11基本指令格式(1)ADDR2,R4寻址方式操作码寄存器地址

77、指令代码指令代码060204(八进制表示八进制表示)操作:操作:R2内容加到内容加到R4的内容上。的内容上。例:例:操操作作前前操操作作后后计算机组成原理 指令系统http:/5.6.3 PDP 11与VAX 11基本指令格式(2)ADD(R2)+,R4 指令代码062204 操作:R2内容为操作数地址,将此操作数加到R4的内容上,然后R2的内容加2。例:例: 操作前 操作后计算机组成原理 指令系统http:/5.6.3 PDP 11与VAX 11基本指令格式(3)ADD-(R3),R0指令代码指令代码064300操作:操作:R3内容减内容减2后作为操作数地址,将此操作数加后作为操作数地址,将

78、此操作数加到到R0的内容上。的内容上。例:例:操作前操作前操作后操作后计算机组成原理 指令系统http:/5.6.3 PDP 11与VAX 11基本指令格式(4)ADD30(R2),20(R5)指令代码指令代码066265操作:操作:R2内容加内容加30(加和是加和是001130)作为源操作数作为源操作数地址,地址,R5内容加内容加20(加和是加和是002020)作为另一源操作为另一源操作数和目的操作数地址,两个操作数相加后,结果作数和目的操作数地址,两个操作数相加后,结果(加和是加和是000002)存放在目的地址存放在目的地址(002020)中。中。例:例:操作前操作前操作后操作后计算机组成

79、原理 指令系统http:/5.6.3 PDP 11与VAX 11基本指令格式2)间接寻址间接寻址表表5-2列出了间接寻址的列出了间接寻址的4种方式。间接寻址方式类种方式。间接寻址方式类似于相应的直接寻址方式,这里仅举两例说明。似于相应的直接寻址方式,这里仅举两例说明。方式方式名名 称称汇编程序程序语法法功功 能能1寄存器间址寄存器间址Rn或或(Rn) 寄存器内容是操作数地寄存器内容是操作数地址址3自动增量间址自动增量间址(Rn)+ 寄存器内容是操作数地寄存器内容是操作数地址的地址,操作后寄址的地址,操作后寄存器内容加存器内容加25自动减量间址自动减量间址 - -(Rn) 寄存器内容寄存器内容减

80、减2后,作后,作为操作数地址的地址为操作数地址的地址7变址间址变址间址X(Rn) X加加(Rn)形成操作数地形成操作数地址的地址,址的地址,X值紧跟值紧跟指令后存储指令后存储表表5-2间接寻址方式间接寻址方式计算机组成原理 指令系统http:/5.6.3 PDP 11与VAX 11基本指令格式(1)ADD(R2),R1指令代码指令代码061201ADDR2,R1操作前操作前操作后操作后计算机组成原理 指令系统http:/5.6.3 PDP 11与VAX 11基本指令格式(2)变址间接方式变址间接方式ADD1000(R2),R1指令代码指令代码067201当当PC作为通用寄存器时,表作为通用寄存

81、器时,表5-1和表和表5-2中列出的中列出的寻址方式仍适用,特别是表寻址方式仍适用,特别是表5-3中所列出的几种情中所列出的几种情况有特殊的效果。况有特殊的效果。方式方式名名 称称汇编功功 能能2立即型立即型#n存放指令单元的下一个单元内是操作数存放指令单元的下一个单元内是操作数3绝对型绝对型#n存放指令单元的下一个单元内是操作数地址存放指令单元的下一个单元内是操作数地址6相对型相对型A指令单元的下一个单元内是操作数地址与指令地指令单元的下一个单元内是操作数地址与指令地址址(PC中中)的相对位移量的相对位移量7相对间接相对间接A指令单元的下一个单元内是操作数地址的地址与指令单元的下一个单元内是

82、操作数地址的地址与指令地址指令地址(PC中中)的相对位移量的相对位移量表表5-3PC作为通用寄存器的特殊寻址方式作为通用寄存器的特殊寻址方式计算机组成原理 指令系统http:/5.6.3 PDP 11与VAX 11基本指令格式操作前操作前操作后操作后计算机组成原理 指令系统http:/5.6.4Pentium的指令系统的指令系统Pentium是完全的是完全的32位机。由于它是位机。由于它是Intel公司公司在在IBMPC上使用的上使用的8088CPU的嫡系后代,所以的嫡系后代,所以虽然虽然Pentium的性能与的性能与8088相比已不可同日而相比已不可同日而语,但可以完全向下兼容到语,但可以完

83、全向下兼容到8088。Intel公司的公司的x86系列系列CPU采用的是采用的是CISC指令系统的设计思想,指令系统的设计思想,指令系统规模很庞大,但指令系统规模很庞大,但Pentium却采用了一却采用了一个基于个基于RISC的处理器内核,使用了的处理器内核,使用了RISC的大量特的大量特性,使性,使Intel公司的公司的x86系列微处理器的性能上升到系列微处理器的性能上升到一个崭新的层次。一个崭新的层次。1Pentium的指令格式的指令格式Pentium的指令格式比较繁杂,最多可有的指令格式比较繁杂,最多可有6个变个变长域,其中长域,其中5个是可选的,如图个是可选的,如图5-11所示。所示。

84、计算机组成原理 指令系统http:/图图5-11Pentium的指令格式的指令格式计算机组成原理 指令系统http:/5.6.4Pentium的指令系统的指令系统(1)前缀字节:前缀字节是一个额外的操作码,它附前缀字节:前缀字节是一个额外的操作码,它附加在指令的最前面,用于改变指令的操作。加在指令的最前面,用于改变指令的操作。(2)操作码字节:操作码的最低位用于指示操作数是操作码字节:操作码的最低位用于指示操作数是字节还是字,次低位用于指示内存地址字节还是字,次低位用于指示内存地址(若需要访若需要访问内存的话问内存的话)是源地址还是目的地址。是源地址还是目的地址。(3)模式字节:模式字节包含了

85、与操作数有关的信息。模式字节:模式字节包含了与操作数有关的信息。该字节可分为该字节可分为2位的位的MOD字段及两个字段及两个3位的寄存位的寄存器字段器字段REG和和R/M。在某些情况下,模式字节的。在某些情况下,模式字节的前前3位可用做操作码扩展,这时操作码的长度就位可用做操作码扩展,这时操作码的长度就是是11位。位。计算机组成原理 指令系统http:/5.6.4Pentium的指令系统的指令系统Pentium指令系统规定操作数中必须有一个是在指令系统规定操作数中必须有一个是在寄存器中。模式字段寄存器中。模式字段MOD与与R/M字段组合定义另字段组合定义另一个操作数的寻址方式,一个操作数的寻址

86、方式,REG字段规定了另一个操字段规定了另一个操作数所在的寄存器。作数所在的寄存器。从逻辑上来说,从逻辑上来说,EAX、EBX、ECX、EDX、ESI、EDI、EBP和和ESP中的任意一个都可以用于源操作中的任意一个都可以用于源操作数寄存器和目的操作数寄存器。但是编码规则禁止数寄存器和目的操作数寄存器。但是编码规则禁止了其中的某些组合,而把它们用于特殊的目的。了其中的某些组合,而把它们用于特殊的目的。计算机组成原理 指令系统http:/5.6.4Pentium的指令系统的指令系统(4)额外模式字节额外模式字节SIB:SIB字节定义了一个比例因子字节定义了一个比例因子(Scale)和两个寄存器。

87、当出现和两个寄存器。当出现SIB字节的时候,计字节的时候,计算操作数地址的方法是:先用变址寄存器算操作数地址的方法是:先用变址寄存器(Index)乘乘上上1、2、4或者或者8(由比例因子决定由比例因子决定),然后再加上基,然后再加上基址寄存器址寄存器(Base),最后再根据,最后再根据MOD字节来决定是否字节来决定是否要加上一个要加上一个8位或者位或者32位的偏移量。位的偏移量。(5)偏移量:偏移量字节给出了偏移量:偏移量字节给出了1、2或者或者4个字节的内个字节的内存地址。存地址。(6)立即数:立即数字节给出了立即数:立即数字节给出了1、2或者或者4个字节的常个字节的常量。量。计算机组成原理

88、 指令系统http:/5.6.4Pentium的指令系统的指令系统2Pentium的寻址方式的寻址方式Pentium具有很大的地址空间,采用了段页式存具有很大的地址空间,采用了段页式存储管理模式,即将内存分为储管理模式,即将内存分为16384个段,每个段的个段,每个段的容量为容量为4GB,按,按0232-1进行编址,地址长度为进行编址,地址长度为32位,按照小端排序位,按照小端排序(低位地址存放在低位字节低位地址存放在低位字节)的的方式存储字。方式存储字。Pentium配备了大量的寄存器,包括基本体系配备了大量的寄存器,包括基本体系结构寄存器、系统级寄存器、调试和测试寄存器、结构寄存器、系统级

89、寄存器、调试和测试寄存器、浮点寄存器等,其中浮点寄存器等,其中32位的通用寄存器不仅可用于位的通用寄存器不仅可用于处理处理32位的数据,还可用于处理位的数据,还可用于处理16位和位和8位数据,位数据,以满足用户的不同要求。以满足用户的不同要求。计算机组成原理 指令系统http:/5.6.4Pentium的指令系统的指令系统为为了了满满足足向向下下兼兼容容的的要要求求,Pentium的的寻寻址址方方式式非非常常没没有有规规律律,它它支支持持的的寻寻址址方方式式包包括括立立即即寻寻址址、直直接接寻寻址址、寄寄存存器器寻寻址址、寄寄存存器器间间接接寻寻址址、变变址址寻寻址址、基基址址加加变变址址寻寻

90、址址、相相对对寻寻址址和和用用于于数数组组元元素素的的特特殊殊寻寻址址方方式式。当当然然,并并不不是是所所有有的的指指令令都都具具有有所所有有的的寻寻址址方方式式,也也不不是是所所有有的的寄寄存存器器都都能能用用于于所所有有的寻址方式。表的寻址方式。表5-4给出了给出了32位模式下的寻址方式。位模式下的寻址方式。计算机组成原理 指令系统http:/MODR/M00011011000MEAXMEAX+OFFSET8MEAX+OFFSET32EAX或AL001MECXMECX+OFFSET8MECX+OFFSET32ECX或CL010MEDXMEDX+OFFSET8MEDX+OFFSET32EDX

91、或DL011MEBXMEBX+OFFSET8MEBX+OFFSET32EBX或BL100SIB带OFFSET8的SIB带OFFSET32的SIBESP或AH101直接MEBP+OFFSET8MEBP+OFFSET32EBP或CH110MESIMESI+OFFSET8MESI+OFFSET32ESI或DH111MEDIMEDI+OFFSET8MEDI+OFFSET32EDI或BH表表5-4Pentium的的32位寻址方式位寻址方式(Mx表示表示x处的内存字处的内存字)计算机组成原理 指令系统http:/5.6.4Pentium的指令系统的指令系统3Pentium的指令类型的指令类型Pentium

92、指令系统包括如下指令类型:数据传指令系统包括如下指令类型:数据传送类指令,算术运算类指令,逻辑运算类及位处理送类指令,算术运算类指令,逻辑运算类及位处理指令,字符串操作类指令,程序控制类指令,系统指令,字符串操作类指令,程序控制类指令,系统寄存器、表控制类指令,系统和寄存器、表控制类指令,系统和Cache控制类指令,控制类指令,MMX(Multi-MediaExtension)指令集。指令集。由于由于Pentium的指令系统比较庞大,这里就不具的指令系统比较庞大,这里就不具体列出了,需要时可参看有关资料。体列出了,需要时可参看有关资料。4Pentium的指令前缀的指令前缀Pentium的指令前

93、缀是可以放在大多数指令之前的指令前缀是可以放在大多数指令之前的一个特殊字节,用于控制指令的执行过程。例如:的一个特殊字节,用于控制指令的执行过程。例如:计算机组成原理 指令系统http:/5.6.4Pentium的指令系统的指令系统nREP前缀表示重复执行指令,直到前缀表示重复执行指令,直到ECX变成变成0。nREPZ前缀表示重复执行指令,直到条件码前缀表示重复执行指令,直到条件码Z 变为变为1。nREPNZ前缀表示重复执行指令,直到条件码前缀表示重复执行指令,直到条件码Z 变为变为0。nLOOK前缀为整条指令保留总线,以允许多处理机前缀为整条指令保留总线,以允许多处理机同步。同步。还有一些指

94、令前缀可以使指令运行于还有一些指令前缀可以使指令运行于16位模式或者位模式或者32位模式下。这些指令前缀不仅需要指令改变操作位模式下。这些指令前缀不仅需要指令改变操作数的长度,而且需要彻底地重新定义操作数的寻址数的长度,而且需要彻底地重新定义操作数的寻址方式。方式。计算机组成原理 指令系统http:/5.7机器语言、汇编语言和高级语言机器语言、汇编语言和高级语言计算机能够直接识别并执行的语言只能是一种用二计算机能够直接识别并执行的语言只能是一种用二进制码表示的、由一系列指令组成的机器语言。因进制码表示的、由一系列指令组成的机器语言。因此,对于任何一个要解决的问题来说,不管使用哪此,对于任何一个

95、要解决的问题来说,不管使用哪一种计算机语言一种计算机语言(汇编语言或高级语言汇编语言或高级语言)描述,都必描述,都必须通过翻译程序转换成相应的机器语言才能执行。须通过翻译程序转换成相应的机器语言才能执行。机器语言存在可读性差、不容易编程和不容易维护机器语言存在可读性差、不容易编程和不容易维护等许多缺陷,这就给编写程序造成了许多困难。我等许多缺陷,这就给编写程序造成了许多困难。我们可以用预先规定的符号来分别替代二进制码表示们可以用预先规定的符号来分别替代二进制码表示的操作码、操作数或地址,用便于记忆的符号而不的操作码、操作数或地址,用便于记忆的符号而不是二进制码来编写程序要方便得多。是二进制码来

96、编写程序要方便得多。计算机组成原理 指令系统http:/5.7机器语言、汇编语言和高级语言机器语言、汇编语言和高级语言例:设有两个例:设有两个8字节数已分别放在双字变量字节数已分别放在双字变量FIRST和和SECONT中。存放时,最低字节在地址最低处中。存放时,最低字节在地址最低处(例如,数据例如,数据123456789ABCDEF0H在内存中存在内存中存放的顺序为放的顺序为0F0H、0DEH、0BCH、9AH、78H、56H、34H、12H),可用下列,可用下列80386汇编程序实汇编程序实现相加。现相加。计算机组成原理 指令系统http:/5.7机器语言、汇编语言和高级语言机器语言、汇编语

97、言和高级语言MOVEAX,FIRST;取第一个数的低;取第一个数的低32位到位到EAXADDEAX,SECOND ;与第二个数的低;与第二个数的低32位内容位内容相加相加MOVTHIRD,EAX;结果的低;结果的低32位内容存放到位内容存放到THIRD的低的低32位中位中MOVEXA,FIRST+4;取第一个数的高;取第一个数的高32位位内容到内容到EAXADCEAX,SECOND+4;与第二个数高;与第二个数高32位相位相加,再加上一步产生的进位加,再加上一步产生的进位MOVTHIRD+4,EAX;结果送变量;结果送变量THIRD的的高高32位中位中计算机组成原理 指令系统http:/5.7

98、机器语言、汇编语言和高级语言机器语言、汇编语言和高级语言这这种种用用助助记记符符来来表表示示二二进进制制码码指指令令序序列列的的语语言言,称称为为汇汇编编语语言言(AssemblyLanguage),它它基基本本上上是是与与机机器器语语言言一一一一对对应应的的。显显然然,用用汇汇编编语语言言编编写写的的程程序序,计计算算机机不不能能直直接接识识别别,必必须须将将它它翻翻译译成成机机器器语语言言后后才才能能执执行行。翻翻译译过过程程是是把把用用助助记记符符表表示示的的操操作作码码、操操作作数数或或地地址址用用相相应应的的二二进进制制码码来来替替代代,这这个个工工作作通常是由计算机执行汇编程序通常

99、是由计算机执行汇编程序(Assembler)来完成的。来完成的。用用汇汇编编语语言言编编写写程程序序,对对程程序序员员来来说说虽虽然然比比用用机机器器语语言言方方便便得得多多,编编写写的的程程序序可可读读性性较较好好,出出错错也也便便于于检检查查和和修修改改,但但它它同同计计算算机机的的硬硬件件结结构构、指指令令系系统统的设置关系非常密切。的设置关系非常密切。计算机组成原理 指令系统http:/5.7机器语言、汇编语言和高级语言机器语言、汇编语言和高级语言因因此此,汇汇编编语语言言仍仍然然是是一一种种面面向向计计算算机机硬硬件件本本身身的的语语言言,程程序序员员用用它它编编写写程程序序必必须须

100、十十分分熟熟悉悉计计算算机机硬硬件件结结构构的的配配置置、指指令令系系统统和和寻寻址址方方式式,这这对对程程序序员员来来说说要要求求是是很很高高的的。同同时时,汇汇编编指指令令的的基基本本操操作作简简单单(主主要要是是简简单单的的算算术术/逻逻辑辑运运算算和和数数据据传传送送),描描述述问问题题的的能能力力差差,用用它它编编写写程程序序工工作作量量大大,源源程程序序较较长长,可可读读性性仍仍然然不不好好。汇汇编编语语言言依依赖赖于于计计算算机机的的硬硬件件结结构构和和指指令令系系统统,而而不不同同的的机机器器有有不不同同的的结结构构和和指指令令,因而用它编写的程序不能在其他类型的机器上运行。因

101、而用它编写的程序不能在其他类型的机器上运行。高高级级语语言言(HighLevelLanguage)FORTRAN、C、PASCAL、COBOL等等就就是是为为了了克克服服汇汇编编语语言言的的这这些些缺点而发展起来的。高级语言与计算机的硬件结构缺点而发展起来的。高级语言与计算机的硬件结构计算机组成原理 指令系统http:/5.7机器语言、汇编语言和高级语言机器语言、汇编语言和高级语言及及指指令令系系统统无无关关,因因此此用用高高级级语语言言编编写写程程序序,无无须须考考虑虑机机器器字字长长、寄寄存存器器、状状态态、寻寻址址方方式式和和内内存存单单元元地地址址等等,因因而而比比使使用用汇汇编编语语

102、言言容容易易得得多多。高高级级语语言言的的表表达达方方式式比比较较接接近近于于自自然然语语言言,描描述述问问题题的的能能力力强,通用性、可读性和可维护性都很好。强,通用性、可读性和可维护性都很好。显显然然,就就编编写写程程序序来来说说,高高级级语语言言比比汇汇编编语语言言优优越越得得多多,但但它它并并非非完完美美无无缺缺,它它存存在在的的显显著著缺缺点点是是:用用高高级级语语言言编编写写的的程程序序,必必须须翻翻译译成成机机器器语语言言才才能能执执行行,这这一一工工作作通通常常是是由由计计算算机机执执行行编编译译程程序序来来完完成成的的。由由于于编编译译过过程程既既复复杂杂又又死死板板,翻翻译

103、译出出来来的的机机器器语语言言程程序序非非常常冗冗长长,如如果果让让有有经经验验的的程程序序员员用用汇汇编编语语言言来来编编写写同同样样功功能能的的程程序序,至至少少可可以以节节省省2/3的的内存空间,速度则要快一倍以上。由于高级语言内存空间,速度则要快一倍以上。由于高级语言计算机组成原理 指令系统http:/5.7机器语言、汇编语言和高级语言机器语言、汇编语言和高级语言程程序序看看不不见见机机器器的的硬硬件件结结构构,因因而而不不能能用用它它来来编编写写需需要访问机器硬件资源的系统软件或设备控制软件。要访问机器硬件资源的系统软件或设备控制软件。为为了了克克服服高高级级语语言言不不能能直直接接

104、访访问问机机器器硬硬件件资资源源(如如某某个个寄寄存存器器或或存存储储单单元元)的的缺缺陷陷,一一些些高高级级语语言言(如如C、PASCAL、FORTRAN等等)提提供供了了与与汇汇编编语语言言之之间间的的调调用用接接口口。用用汇汇编编语语言言编编写写的的程程序序,可可作作为为高高级级语语言言的的一一个个外外部部过过程程或或函函数数,利利用用堆堆栈栈来来传传递递参参数数或或参参数数的的地地址址(如如何何传传递递参参数数与与高高级级语语言言的的版版本本有有关关)。两两者者的的源源程程序序通通过过编编译译或或汇汇编编生生成成目目标标(OBJ)文文件件后后,再再利利用用连连接接程程序序(LINKER

105、)把把它它们们连连接接成成可可执执行行文文件件,便便可可在在机机器器上上运运行行。采采用用这这种种方方法法,用用高高级级语语言言编编写写程程序序时时,若若要要使使用用机机器器的的硬硬件件资资源源,则则可可调调用用汇汇编程序来实现。编程序来实现。计算机组成原理 指令系统http:/5.7机器语言、汇编语言和高级语言机器语言、汇编语言和高级语言汇编语言和高级语言各有其特点和优点。汇编语言汇编语言和高级语言各有其特点和优点。汇编语言与机器硬件关系密切,用它编写的程序紧凑、占内与机器硬件关系密切,用它编写的程序紧凑、占内存小、速度快,特别适合于编写经常与硬件打交道存小、速度快,特别适合于编写经常与硬件打交道的系统软件;而高级语言不涉及机器的硬件结构,的系统软件;而高级语言不涉及机器的硬件结构,通用性强,编写程序容易,特别适合于编写与硬件通用性强,编写程序容易,特别适合于编写与硬件没有直接关系的应用软件。没有直接关系的应用软件。计算机组成原理 指令系统

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号