《计算机原理与汇编语言程序设计》课件第4章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《计算机原理与汇编语言程序设计》课件第4章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机原理与汇编语言程序设计 计算机 原理 汇编语言 程序设计 课件
- 资源描述:
-
1、第第4 4章章 指令系统指令系统第第4 4章章 指令系统指令系统4.1 概述概述 4.2 指令格式指令格式 4.3 寻址方式寻址方式 4.4 指令类型指令类型 4.5 8086指令系统指令系统 习题习题 第第4 4章章 指令系统指令系统4.1 概概 述述计算机执行某种操作的命令称为指令。通常一条指令对应一种基本操作,例如传送、加、减、移位等等。CPU能直接识别和执行的指令是用二进制代码表示的,这种代码称为机器代码或机器指令。一台计算机中所有机器指令的集合,称为这台计算机的指令系统。指令系统是表征一台计算机性能的重要指标,直接与计算机系统的性能和硬件结构的复杂程度等密切相关,它的格式与功能不仅直
2、接影响到机器的硬件结构,而且也直接影响到系统软件,还影响到机器的适用范围。第第4 4章章 指令系统指令系统4.1.1 指令系统的性能要求指令系统的性能要求早期的计算机,考虑到计算机的硬件结构和成本,指令系统都比较简单,所支持的只有定点加减、逻辑运算、数据传送、转移等十几至几十条指令。由于指令数量少、运算功能弱,只能处理定点数,所以使用不方便。20世纪70、80年代,随着集成电路和超大规模集成电路的飞速发展,计算机硬件成本不断下降,计算机的指令系统变得复杂和完备,指令数多达三五百条,寻址方式也趋于多样化,能处理的数据类型更多,软件变得越来越丰富,计算机中软件成本所占的比例迅速增加。一个完善的指令
3、系统要满足以下四个方面的要求。第第4 4章章 指令系统指令系统1.完备性完备性指令系统的完备性是指常用指令齐全,编程方便,也就是要求指令系统丰富、功能齐全、使用方便。当用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现。2.有效性有效性有效性是指利用该指令系统所编写的程序能够高效率地运行。高效率主要表现在程序占据存储空间小、执行速度快。一般来说,一个功能更强、更完善的指令系统,必定有更好的有效性。第第4 4章章 指令系统指令系统3.规整性规整性指令系统的规整性是指数据和指令使用规则统一简单,易学易记。规整性包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。对称
4、性指在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式。匀齐性是指一种操作性质的指令可以支持各种数据类型,如算术运算指令可支持字节、字、双字整数的运算,十进制数运算和单、双精度浮点数运算等。指令格式和数据格式的一致性是指指令长度和数据长度有一定的关系,以方便处理和存取,例如指令长度和数据长度通常是字节长度的整数倍。第第4 4章章 指令系统指令系统4.兼容性兼容性兼容性是指同系列机具有相同的基本结构和共同的基本指令集,也就是指令系统是兼容的,这样各机种上软件基本可以通用。但由于不同机种推出的时间不同,在结构和性能上有差异,做到所有软件都完全兼容是不可能的,只能做到“
5、向上兼容”,即低档机上运行的软件可以在高档机上运行。同时要完全满足上述标准是困难的,但它可以指导设计出更加合理的指令系统。设计指令系统的核心问题是选定指令的格式和功能。指令的格式与计算机的字长、期望的存储器容量和读写方式、计算机硬件结构的复杂程度和追求的运算性能等有关。第第4 4章章 指令系统指令系统4.1.2 精简指令系统计算机精简指令系统计算机1.CISC和和RISC在计算机发展初期,由于硬件水平比较低,结构简单,当时计算机的指令系统都比较小,一般只包含一些比较常用的、功能比较单一的机器指令。在这个时期,只要增加计算机硬件的复杂性,就可以使计算机的性能获得很大的提高,而且传统的计算机体系结
6、构设计思想一直认为计算机的指令系统越丰富、越复杂,功能越强,处理程序设计语言的能力也越强,所以为了软件编程方便和提高程序的运行速度,硬件工程师采用的办法是不断增加具有复杂功能的指令和使用多种多样的寻址方式,把计算机指令系统变得越来越复杂、越来越庞大,许多计算机系统都具有300条以上的指令,有的机器甚至多达500条指令,这种计算机称为复杂指令系统计算机(Complex Instruction Set Computer,CISC)。第第4 4章章 指令系统指令系统但是一些计算机工程师们发现,庞大的指令系统并没有给计算机性能带来进一步的提高,反而由于指令系统的过于庞杂,使计算机硬件结构变得复杂、设计
7、周期延长,实现也比较困难,带来了可靠性降低和调试维护工作量增大等一系列问题,而且还可能降低系统性能。20世纪70年代中期,科学家们经研究发现CISC存在许多缺点,主要如下:(1)指令系统使用效率低。经统计,在复杂指令系统的计算机中,20%的计算机指令完成约80%的工作,也就是说,一个典型程序的运算过程所使用的80%的指令,只占一个处理器指令系统的20%。事实上,最频繁使用的指令是取数、存数和加法这些最简单的指令。第第4 4章章 指令系统指令系统(2)体系的复杂性增加了系统的不可靠性。复杂的指令系统必然带来计算机硬件结构的复杂性,这不但增加了设计的时间与成本,还容易造成设计失误。(3)指令操作复
8、杂,影响执行速度。由于大量使用操作复杂的存储器存储器操作指令,计算机的工作效率很难大幅提高。(4)指令系统和寻址方式的复杂化导致体系结构设计困难。在CISC中,许多复杂指令需要极复杂的操作,这类指令多数是某种高级语言的直接翻版,通用性差。所以,复杂指令系统是一种大量指令很少使用的指令系统,它不仅带来计算机结构上的复杂性,同时使微程序设计更为复杂,致使计算机出错的概率增加。第第4 4章章 指令系统指令系统20世纪80年代初,人们发现,提高计算机的性能不是单纯依赖指令系统的复杂程度和完备程度,因此提出了精简指令系统计算机(Reduced Instruction Set Computer,RISC)
9、的概念。RISC结构的最大特点是指令系统简单,其设计原则是使计算机的结构更加简单、更加合理,使系统达到最高的有效速度。精简指令系统计算机是计算机体系结构发展史上又一次重大的变革,是计算机发展的必然趋势。2.RISC技术的特点技术的特点(1)采用高效的流水线操作。采用超标量和超流水线技术,使大部分指令在一个时钟周期内完成。第第4 4章章 指令系统指令系统(2)指令格式的规格化和简单化。选取使用频率较高的一些简单指令,指令条数少,采用硬布线组合逻辑控制,指令长度固定,指令格式种类少。指令采用简单和固定的格式,尽量减少寻址方式,使硬件逻辑部件简化且缩短译码时间,可以提高机器执行效率和可靠性。(3)C
10、PU内设置多个寄存器。这样可以采用大量的寄存器寄存器指令,使指令系统更为精简,控制部件更为简单,指令执行速度大大提高。(4)只有取数/存数指令访问存储器,其余指令的操作都在寄存器之间进行。(5)控制器采用组合逻辑控制,不使用微程序控制。(6)以最简单有效的方式支持高级语言。第第4 4章章 指令系统指令系统4.2 指指 令令 格格 式式机器指令是用机器字来表示的,表示一条指令的机器字就称为指令字。指令格式是指令字用二进制代码表示的结构形式,通常由操作码字段和地址码字段组成。操作码字段表征指令的操作特性与功能,如加运算、减运算或读、写内存等,而地址码字段通常指出参与操作的操作数的地址。一条指令的结
11、构可用如下形式来表示:对于计算机的指令系统,如何合理、科学地设计指令格式,使指令既能给出足够的信息,其长度又能与机器的字长匹配,还能够节省存储空间,缩短取指时间,提高机器的性能,是非常重要的一个问题。第第4 4章章 指令系统指令系统4.2.1 操作码操作码操作码说明指令要执行的具体操作,如传送、运算、移位、跳转等,是指令中必不可少的组成部分。操作码的不同编码可以表示不同的指令,每一种编码代表一种指令。例如,某指令的操作码有3位,可以用操作码000表示数据传送,001表示加法操作,而用010表示减法操作,等等。CPU中设有专门的电路用来解释每个操作码,这样计算机就能执行操作码所表示的操作了。操作
12、码字段位数的选择一般取决于计算机指令系统的规模。较大的指令系统需要较多的位数来表示每条指令。如果一个指令系统需要16条指令,则有4位操作码就够了(24=16),如果需要32条指令,那么就要用5位操作码(25=32)。一般来说,一个包含n位的操作码最多能够表示2n条指令。第第4 4章章 指令系统指令系统指令操作码的长度可以是固定的,也可以是变化的。前者是将操作码集中放在指令字的一个字段内。这种格式便于硬件设计,指令译码时间短,广泛用于字长较长的大中型计算机和超小型计算机以及RISC中。如IBM370和VAX-11系列机,操作码长度均为8位。操作码的长度不固定的指令,一般是指令字较短的指令。为了充
13、分利用指令字长度,指令字的操作码字段和地址码字段是不固定的,将操作码分散在指令字的不同字段中,不同类型的指令有不同的划分,以便用尽可能短的指令字长来表示较多的操作种类,并在越来越大的存储空间中寻址。这种格式可有效地压缩操作码的平均长度,所以在字长较短的微机中被广泛采用。如PDP-11、Intel 8086/80386等,操作码的长度都是可变的。第第4 4章章 指令系统指令系统操作码长度不固定会增加指令译码和分析的难度,使控制器的设计复杂。通常采用扩展操作码技术,使操作码的长度随地址数的减少而增加,不同地址数的指令可以具有不同长度的操作码,从而在满足需要的前提下,有效地缩短指令字长。4.2.2
14、操作数地址码操作数地址码操作数地址码说明指令执行过程中需要的操作数,它可以是操作数本身,也可以是操作数的地址或是地址的一部分,还可以是指向操作数的地址指针或其他有关操作数据的信息。地址码的位数决定了指令直接寻址的能力,如果有m位,则指令的直接寻址范围为2m字节。指令需要的操作数越多,地址码的格式也越多,根据指令中地址码的个数,可将指令分为三地址指令、二地址指令、一地址指令和零地址指令。第第4 4章章 指令系统指令系统早期计算机指令的基本格式中,一般有两个源操作数及一个结果操作数,因而就形成了三地址指令格式。在三地址指令格式的基础上,后来又发展成二地址格式、一地址格式和零地址格式。各种不同操作数
15、的指令格式如下所示:第第4 4章章 指令系统指令系统1.三地址指令三地址指令三地址指令字中有三个操作数地址D1、D2和D3,基本操作是:将D1地址中的内容与D2地址中的内容进行操作码规定的操作,结果送到D3的地址中。其表达式为:(D1)OP(D2)D3其中,D1为第一个源操作数的地址;D2为第二个源操作数的地址;D3为结果操作数的地址。2.二地址指令二地址指令二地址指令有两个地址码D1和D2。这种指令格式是最常见的,两个地址均为源操作数地址,将其中一个地址作为存放结果的目的地址(由系统约定)。基本操作是:将D1地址中的内容与D2地址中的内容进行某种操作,结果送到D1或D3中。其表达式为:(D1
16、)OP(D2)D1或D2第第4 4章章 指令系统指令系统3.一地址指令一地址指令一地址指令也称为单操作数指令。有两种情况会使用一地址指令:(1)指令中只有一个地址码,该地址既是源操作数的地址,又是结果操作数的地址。(2)指令中应有两个地址码,其中一个操作数固定存放在累加寄存器AC中。基本操作是:将累加器的数据与指令字中地址码所指定的操作数进行某种操作,操作结果又放回累加寄存器AC中,其表达式为:ACOP(D)AC第第4 4章章 指令系统指令系统4.零地址指令零地址指令零地址指令的指令字中只有操作码,而没有地址码。有两种情况会使用零地址指令:(1)隐含了操作数的单操作数指令,比如,有些操作数默认
17、在堆栈中或在累加寄存器中。(2)控制类指令,不需要操作数。例如,停机指令或空操作指令都是不需要地址码的指令。上述地址D1、D2和D3可以是内存中存储单元的地址,也可以是CPU中的通用寄存器或是直接参与操作的操作数。在二地址指令格式中,会出现三种指令。第一种是存储器存储器型指令。这种指令的两个操作数都放在内存里,从内存单元中取源操作数,操作结果又存到内存中,因此机器执行第第4 4章章 指令系统指令系统这种指令需要多次访问内存,执行速度比较慢。第二种是寄存器寄存器型指令。机器执行这类指令时,源操作数和结果操作数都在CPU的寄存器中,不需要访问内存,所以,计算机执行寄存器寄存器型指令的速度很快。第三
18、种是寄存器存储器型指令。执行此类指令时,一个操作数在内存单元,一个操作数在寄存器,指令的执行速度介于前两者之间。4.2.3 指令字长度指令字长度指令字中包含二进制代码的位数,称为指令字长度。指令字长度取决于操作码的位数、地址码的个数及地址码的位数。由于不同指令的操作码的位数、地址码的个数及地址码的位数不同,所以不同机器的指令字长是不相同的,也不固定,但不可以是任意的。为了便于处理字符数据和充分利用存储空间,指令字长度一般为字节的整数倍。例如,在Pentium系列机中,指令字长度有8位、16位、32位、40位、48位不等。第第4 4章章 指令系统指令系统机器字长是指计算机能直接处理的二进制数据的
19、位数,它决定了计算机的运算精度。指令字长度与机器字长没有固定的关系,可以等于机器字长,称为单字长指令;可以等于半个机器字长,称为半字长指令;也可以等于两个机器字长度,称为双字长指令。例如,IBM370系列,它的指令格式有16位(半字)的,有32位(单字)的,还有48位(一个半字)的。用多字长指令的目的,在于提供足够的地址位来解决访问内存任何单元的寻址问题。早期的计算机,指令字长、机器字长和存储字长均相等,因此访问某个存储单元,便可取出一条完整的指令或一个完整的数据。这种机器的指令字长是固定的,控制方式比较简单。第第4 4章章 指令系统指令系统随着计算机的发展,存储容量的增大,要求处理的数据类型
20、增多,计算机的指令字长也发生了很大的变化。一台机器的指令系统可以采用位数不相同的指令,即指令字长是可变的,如单字长指令、多字长指令。控制这类指令的电路比较复杂,而且多字长指令要多次访问存储器,这就降低了CPU的运算速度,同时又占用了更多的存储空间。为了提高指令的运行速度和节省存储空间,通常尽可能把常用的指令(如数据传送指令、算术逻辑运算指令等)设计成单字长或短字长格式的指令。在一个指令系统中,如果所有的指令字长度是相等的,称为等长指令字结构,它们可以都是单字长指令或半字长指令。这种指令字结构简单,且指令字长度是不变的。如果各种指令字长度随指令功能而异,比如有的指令是单字长指令,有的指令是双字长
21、指令,就称为变长指令字结构。这种指令字结构灵活,能充分利用指令长度,但指令的控制比较复杂。第第4 4章章 指令系统指令系统【例4-1】指令格式如下:解 由指令格式看出操作码字段(OP)为6位,所以该计算机的指令系统最多,有64=26个操作,是二字长二地址的指令。源操作数是寄存器操作数,另一个操作数是由变址寄存器和位移量决定的存储器操作数,整个指令系统属于寄存器存储器型指令。第第4 4章章 指令系统指令系统4.3寻寻 址址 方方 式式 计算机中有些指令不需要操作数,但大多数指令需要一个或两个操作数。一般来说,指令地址码给出的存储器操作数地址并不是操作数的实际地址,称为形式地址,也称偏移量。指令中
22、的地址码字段是由形式地址和寻址方式特征位等组合形成的,而操作数实际的地址称为有效地址(Effective Address,EA)。寻址方式就是根据指令中的形式地址寻找操作数有效地址的方法。计算机中常见的操作数有三类:立即数、寄存器操作数和存储器操作数。直接跟随在指令操作码之后的操作数,称为立即数;存放在CPU内部寄存器中的操作数,称为寄存器操作数第第4 4章章 指令系统指令系统称为存储器操作数。指令的形式地址给出地址信息,在执行时需要根据这个地址信息找到操作数的实际地址。各种计算机中采用的寻址方式累计有几十种,下面主要讨论比较常用的几种寻址方式。4.3.1 立即寻址立即寻址立即寻址就是指令的地
23、址码给出的不是操作数的地址,而是操作数本身,称为立即数。立即寻址方式的优点在于只要取出指令,便可立即获得操作数,这样指令在执行阶段不必再访问存储器,从而节省了访问内存的时间。例如,下面是一条立即寻址的指令格式:这条指令是单地址指令,但这里的D不表示地址,而是一个操作数,F是立即寻址特征位。第第4 4章章 指令系统指令系统4.3.2 寄存器寻址寄存器寻址寄存器寻址就是指令地址码字段指出的是寄存器的编号,如图4-1所示。其操作数在由Ri所指示的寄存器中,操作数的有效地址为寄存器号,即EA=Ri。由于CPU内部的通用寄存器的数量是有限的,因此采用寄存器寻址方式,可使指令中地址码长度明显缩短,而且操作
24、数不在主存中,寄存器寻址在指令执行阶段无须访存,减少了执行时间,执行速度很快。实际上这是一种直接寻址方式,只是直接访问的是通用寄存器而不是主存储器。采用这种寻址方式的优点是可大大缩短指令字的长度和加快指令的执行速度,因此寄存器寻址在计算机中得到广泛应用。第第4 4章章 指令系统指令系统图4-1 寄存器寻址 第第4 4章章 指令系统指令系统4.3.3 直接寻址直接寻址直接寻址就是在指令的地址字段中直接给出操作数在存储器中的地址D,这是一种基本的寻址方法,由于操作数的地址直接给出而不需要经过某种变换,所以称这种寻址方式为直接寻址方式。图4-2是直接寻址方式的示意图。采用直接寻址方式时,指令字中的形
25、式地址D就是操作数的有效地址E,即EA=D。它的优点是寻找操作数比较简单;不需要专门计算操作数的地址,在指令执行阶段对主存只访问一次。它的缺点在于D的位数限制了指令的寻址范围。第第4 4章章 指令系统指令系统图4-2 直接寻址第第4 4章章 指令系统指令系统4.3.4 间接寻址间接寻址间接寻址是相对于直接寻址而言的,间接寻址就是指令地址字段给出的不是操作数的真正地址,而是操作数有效地址所在的存储单元地址,即 D单元的内容才是操作数的有效地址,EA=(D)。图4-3是间接寻址的示意图。间接寻址和直接寻址可以由寻址特征位指出。例如,指令格式如下:若寻址特征位I=0,表示直接寻址,这时有效地址EA=
展开阅读全文