版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章
指令系统5.1指令系统的发展5.2指令格式5.3数据表示5.4寻址方式(编址方式)5.5指令类型5.6指令系统的兼容性5.7精简指令系统计算机(RISC)和复杂指令系统(CISC)5.8指令系统举例5.9机器语言、汇编语言和高级语言1计算机与信息科学系董阿妮讲师arnnydong号:648165.1指令系统的发展计算机系统主要由硬件和软件两部分组成。软件最终转换成一系列机器指令后在计算机上执行。每条指令规定机器完成一定的功能。指令系统:一台计算机中所有机器指令的集合称为这台计算机的指令系统。指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也直接影响到系统软件,影响到机器的适用范围。2计算机与信息科学系董阿妮讲师arnnydong号:648165.1指令系统的发展20世纪50年代和60年代早期:计算机所支持的指令系统只有定点加减、逻辑运算、数据传送和转移等十几至几十条最基本的指令;寻址方式简单。60年代后中、后期:指令系统越来越丰富,增加了设置乘除法运算指令、浮点运算指令、十进制运算指令以及字符串处理指令等,指令数达一、二百条;寻址方式趋于多样化。3计算机与信息科学系董阿妮讲师arnnydong号:648165.1指令系统的发展为了满足各计算机上的软件的兼容性,以便在旧机器上编制的各种软件也能在新的、性能更好的机器上正确运行,因此,在60年代出现了系列计算机。系列计算机:基本指令系统相同,基本体系结构相同的一系列计算机。IBM370系列、VAX-11系列、IBMPC(XT/AT/286/386/486/Pentium)微机系列系列机能解决软件兼容问题的必要条件是该系列的各机种有共同的指令集,而且新推出的机种的指令系统一定包含旧机种的所有指令,因此,在旧机种上运行的各种软件可以不加任何修改地在新机种上运行。4计算机与信息科学系董阿妮讲师arnnydong号:648165.1指令系统的发展指令系统决定了计算机的基本功能,因此指令系统的设计是计算机系统设计的一个核心问题。指令系统不仅与计算机的硬件设计紧密相关,而且直接影响到系统软件设计的难易程度。各计算机执行的指令系统决定了机器所要求的能力,同时也决定了指令的格式和机器的结构。不同结构的机器和不同的指令格式应该具有与之相匹配的指令系统。为此,设计指令系统时,应重视以下几个方面:指令格式类型操作功能5计算机与信息科学系董阿妮讲师arnnydong号:648165.1指令系统的发展一个完善的指令系统应满足如下几方面的要求:完备性:是指用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现。完备性要求指令系统丰富、功能齐全、使用方便。有效性:是指利用该指令系统所编写的程序能够高效率地运行。高效率主要表现在程序占据存储空间小、执行速度快。规整性:包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。6计算机与信息科学系董阿妮讲师arnnydong号:648165.1指令系统的发展对称性:在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式。匀齐性:一种操作性质的指令可以支持各种数据类型;兼容性:至少要能做到“向上兼容”,即低档机上运行的软件可以在高档机上运行。7计算机与信息科学系董阿妮讲师arnnydong号:648165.1指令系统的发展计算机的性能与它所设置的指令系统有很大关系,而指令系统的设置又与机器的硬件结构密切相关。通常性能较好的计算机都设置有功能齐全、通用性强、指令丰富的指令系统,但这需要复杂的硬件结构来支持。8计算机与信息科学系董阿妮讲师arnnydong号:648165.1指令系统的发展然而,指令结构太复杂也会带来一些不利的因素,如设计周期长,正确性难以保证且不易维护等。实验证明,在如今庞大的指令系统中,只有诸如算术、逻辑运算、数据传送、转移和子程序调用等几十条最基本的指令才是经常使用的,而需要大量硬件支持的大多数较复杂的指令却利用率很低,造成硬件资源上的极大浪费。9计算机与信息科学系董阿妮讲师arnnydong号:64816第5章
指令系统5.1指令系统的发展5.2指令格式5.3数据表示5.4寻址方式(编址方式)5.5指令类型5.6指令系统的兼容性5.7精简指令系统计算机(RISC)和复杂指令系统(CISC)5.8指令系统举例5.9机器语言、汇编语言和高级语言10计算机与信息科学系董阿妮讲师arnnydong号:648165.2指令格式从计算机组成的层次结构来说,指令分为:微指令:是微程序级的命令,它属于硬件;宏指令:是由若干条机器指令组成的软件指令,它属于软件;机器指令:则介于微指令与宏指令之间,通常简称为指令。每一条指令可完成一个独立的算术运算或逻辑运算操作。本章所讨论的指令,是机器指令。11计算机与信息科学系董阿妮讲师arnnydong号:648165.2指令格式5.2.1指令格式5.2.2指令操作码的扩展技术5.2.3指令长度与字长的关系12计算机与信息科学系董阿妮讲师arnnydong号:648165.2.1指令格式计算机的指令格式与机器的字长、存储器的容量及指令的功能密切相关。根据不同的机器,指令的格式也是多样化的,为了使硬件能执行不同类型的操作,指令必须是二进制编码。指令字一般为计算机的一个字长度,在该字中包含操作码、地址码、各种特征和校验码等信息。13计算机与信息科学系董阿妮讲师arnnydong号:648165.2.1指令格式一条指令应包含如下信息:进行何种操作:即操作性质。体现在指令中被称为操作码。操作的对象:数据来源以及如何寻找操作数。体现在指令中被称为地址码。操作结果:结果存放在何处。下一条指令的地址:顺序执行时,下条指令的地址由计数器(PC)指出;当改变程序的运行顺序(如转移、调用子程序)时,下条指令的地址才由指令给出。14计算机与信息科学系董阿妮讲师arnnydong号:648165.2.1指令格式表示一条指令的机器字,就称为指令字,通常简称指令。指令字长度:一个指令字中包含二进制代码的位数。机器字长:计算机能直接处理的二进制数据的位数,它决定了计算机的运算精度。指令格式:是指令字用二进制代码表示的结构形式。15计算机与信息科学系董阿妮讲师arnnydong号:648165.2.1指令格式指令由操作码和地址码两部分组成,它的基本格式如下:操作码地址码16计算机与信息科学系董阿妮讲师arnnydong号:648165.2.1指令格式操作码操作码是说明指令操作性质的二进制数代码。操作码字段表征指令的操作特性与功能;指令的操作码表示该指令应进行什么性质的操作,如进行加法、减法、乘法、除法、取数、存数等等。操作码所占的二进制位数决定了一台计算机所能允许的指令条数。例如,操作码占用六位二进制码时,这台计算机最多允许有:
26=64条指令17计算机与信息科学系董阿妮讲师arnnydong号:648165.2.1指令格式组成操作码字段的位数一般取决于计算机指令系统的规模。每条指令都要求它的操作码必须是独一无二的位组合。指令系统中指令的个数N与操作码的位数n,必须满足关系式:N≤2n18计算机与信息科学系董阿妮讲师arnnydong号:648165.2.1指令格式地址码地址码字段通常指定参与操作的操作数地址和运算结果的地址。根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令。指令中的地址码用来指出该指令的源操作数地址(一个或两个)、结果地址及下一条指令的地址。这里的地址可以是主存地址,也可以是寄存器地址,甚至可以是I/O设备的地址。目前二地址和一地址指令格式用的最多。19计算机与信息科学系董阿妮讲师arnnydong号:648165.2.1指令格式零地址指令零地址指令的指令字中只有操作码,而没有地址码。指令格式:执行零地址指令时,被运算的操作数地址全部是隐含的,指令格式中只说明作什么操作。这种指令有两种可能:无需任何操作数。如空操作指令,停机指令等。所需的操作数是默认的:堆栈。OP20计算机与信息科学系董阿妮讲师arnnydong号:648165.2.1指令格式一地址指令指令中只给出一个操作数地址,另一个操作数地址和目的地址则是隐含的。这个隐含的地址就是运算器的累加寄存器AC。一地址指令常称为单操作数指令。指令格式:操作:(AC)OP(A)→AC指令中给出的一个地址既是操作数的地址,又是操作结果的存储地址。OPA21计算机与信息科学系董阿妮讲师arnnydong号:648165.2.1指令格式指令中提供的一个地址提供一个操作数,另一个操作数是由机内硬件寄存器“隐含”地自动提供的。所谓“隐含”是指此操作数在指令中不出现,而是按照事先约定由寄存器默认提供,运算结果仍送到寄存器中。因为这个寄存器在连续运算时,保存着多条指令连续操作的累计结果,故称为累加器(AC)。22计算机与信息科学系董阿妮讲师arnnydong号:648165.2.1指令格式采用一地址指令编写的程序,其指令在内存中也要顺序存放,由程序计数器自动增量控制其顺序执行。程序转向时,也用转移指令改变程序的执行方向。在程序执行前,必须用一条“取数指令”把其中一个操作数放到累加寄存器中。程序结束后,累加寄存器的内容已被修改。若要将累加寄存器中的结果送回内存,则必须使用“存数指令”。完成一条指令只需两次访存。23计算机与信息科学系董阿妮讲师arnnydong号:648165.2.1指令格式二地址指令二地址指令有两个地址码字段A1和A2,分别指明参与操作的两个数在内存中或运算器通用寄存器的地址,其中地址A2兼做存放操作结果的地址。指令格式:操作:(A1)OP(A2)→A2OP:操作码;A1:第一操作数地址;A2:既作第二操作数地址,又作目的地址。OPA1A224计算机与信息科学系董阿妮讲师arnnydong号:648165.2.1指令格式把保存操作前原来操作数的地址称为源点地址,把保存指令执行结果的地址称为终点地址或目的地址。将源点与终点操作数进行操作码规定的操作后,将结果存入终点地址。通常二地址指令又称为双操作数指令。25计算机与信息科学系董阿妮讲师arnnydong号:648165.2.1指令格式使用二地址指令编写的程序,其指令在内存中也要依次存放,才能用程序计数器自动增量使之顺序执行。若程序发生转向时,也必须用转移指令改变程序的执行顺序。当二地址指令执行之后,A2中的内容被修改了。有的机器规定A1为目的地址,这时则是A1的内容被修改了。26计算机与信息科学系董阿妮讲师arnnydong号:648165.2.1指令格式在二地址指令格式中,从操作数的物理位置来说,可归结为三种类型:存储器-存储器(SS)型指令:访问内存的指令格式寄存器-寄存器(RR)型指令:访问寄存器的指令格式寄存器-存储器(RS)型指令27计算机与信息科学系董阿妮讲师arnnydong号:648165.2.1指令格式三地址指令三地址指令字中有三个操作数地址A1,A2和A3。指令格式:操作:(A1)OP(A2)→A3其操作是对A1、A2指出的两个操作数进行操作码所规定的操作,并将结果存入A3中。OPA1A2A328计算机与信息科学系董阿妮讲师arnnydong号:648165.2.1指令格式多地址指令格式例如四地址指令格式。指令格式:操作:(A1)OP(A2)→A3OP:操作码;A1:第一地址码,存放第一操作数;A2:第二地址码,存放第二操作数;A3:第三地址码,存放操作结果;A4:第四地址码,存放下条要执行指令的地址。OPA1A2A3A429计算机与信息科学系董阿妮讲师arnnydong号:648165.2.1指令格式多地址指令格式的特点:直观明了;程序执行的流向明确;操作数和结果可以分散在内存各处。但是指令字长度太长。这种指令直观易懂,后续指令的地址可任意填写。因为程序中大部分指令都是顺序执行的,当采用指令计数器后,A4地址可以省去。30计算机与信息科学系董阿妮讲师arnnydong号:648165.2.1指令格式指令格式设计准则指令字长要短,以得到时间和空间上的优势。指令字长必须有足够的长度。指令字长一般应是机器字符长度的整数倍以便存储系统的管理。若机器中字符码长是L位,则指令字长最好是L,2L,4L,8L等。指令格式的设计还与如何选定指令中操作数地址的位数有关。31计算机与信息科学系董阿妮讲师arnnydong号:648165.2.1指令格式指令格式举例:8位微型机:字长只有8位,指令格式包含单字长指令、双字长指令、三字长指令等多种。内存按字节编址,所以单字长指令每执行一条指令后,指令地址加1。双字长指令或三字长指令每执行一条指令时,指令地址要加2或加3,可见多字长的指令格式不利于提高机器速度。Pentium指令格式:指令字长度是可变的:从1字节到12字节,还可以带前缀(对其后的指令本身进行显示约定,每个前缀占1个字节)。32计算机与信息科学系董阿妮讲师arnnydong号:648165.2指令格式5.2.1指令格式5.2.2指令操作码的扩展技术5.2.3指令长度与字长的关系33计算机与信息科学系董阿妮讲师arnnydong号:648165.2.2指令操作码的扩展技术操作码字段分两种:固定长度操作码固定长度操作码是指操作码所占的二进制位数固定不变,而且集中放在指令字的一个字段中。这种格式有利于简化硬件设计,减少指令译码时间,广泛用于字长较长的大、中型计算机和超级小型计算机中。例如IBM370和VAX﹣11系列机中,操作码的长度都是8位,可表示256条指令。34计算机与信息科学系董阿妮讲师arnnydong号:648165.2.2指令操作码的扩展技术可变长度操作码可变长度操作码是操作码扩展技术的应用,即操作码的长度是可变的,且分散地放在指令的不同字段中。这种格式有利于压缩程序中操作码的平均长度,在字长较短的微型机中被广泛应用。如:PDP-11,INTEL8086/80386等,其操作码的长度均是可变的。35计算机与信息科学系董阿妮讲师arnnydong号:648165.2.2指令操作码的扩展技术PDP/11系列机指令格式36计算机与信息科学系董阿妮讲师arnnydong号:648165.2.2指令操作码的扩展技术下图是一种扩展操作码的安排示意。这是一个16位字长的指令码,包括4位基本操作码字段和三个4位长的地址字段。4位基本操作码,若全部用于三地址指令,则有16条。显然,4位基本操作码是不够的,必须向地址码字段扩展操作作码的长度。
OP
A1
A2
A3
4位4位4位4位37计算机与信息科学系董阿妮讲师arnnydong号:648165.2.2指令操作码的扩展技术15条三地址指令的操作码由4位基本操作码0000~1110所给定,剩下一个1111则用于把操作码扩展到X地址码字段,即由4位扩展到8位;38计算机与信息科学系董阿妮讲师arnnydong号:648165.2.2指令操作码的扩展技术14条二地址指令的操作码由8位操作码的1111,0000~1111,1101给定,剩下的1111,1110和1111,1111又可用于把操作码扩充到Y地址字段,即从8位又扩充到12位;39计算机与信息科学系董阿妮讲师arnnydong号:648165.2.2指令操作码的扩展技术31条一地址指令的操作码由12位操作码的1111,1110,0000~1111,1111,1110给定。15条三地址指令14条二地址指令31条一地址指令
0001XXXXYYYYZZZZ
1110XXXXYYYYZZZZ
11110000YYYYZZZZ
11110001YYYYZZZZ
11111101YYYYZZZZ
┆
┆
111111100000ZZZZ
111111100001ZZZZ
111111111110ZZZZ
┆0000XXXXYYYYZZZZ40计算机与信息科学系董阿妮讲师arnnydong号:648165.2.2指令操作码的扩展技术由此类堆,还可以把剩下的1111,1111,1111扩充到Z地址码字段而形成的16位操作码,这时还可由1111,1111,1111,0000~1111,1111,1111,1111给出16条零地址指令。
11111111000011111111
1111000111111111
1111
111116零41计算机与信息科学系董阿妮讲师arnnydong号:648165.2.2指令操作码的扩展技术除了这种安排外,还有多种其它安排方法。如:形成15条三地址指令,15条二地址指令,15条一地址指令,16条零地址指令,共61条指令。实际的机器可以采用各种灵活的扩展方式,其思路与此类似。42计算机与信息科学系董阿妮讲师arnnydong号:648165.2.2指令操作码的扩展技术上述方法是在不增加指令长度的情况下,采用对地址少的指令使用较长的操作码,对地址数多的指令使用较短的操作码。其实质是增加了指令的数量,丰富了指令的功能。在可变长操作码的指令系统设计中,究竟使用何种扩展方法为好,指令的使用频度(即在程序中出现的概率)是非常重要的依据。即频度高的指令应分配短的操作码,频度低的指令则分配较长的操作码。这样,既可有效地缩短操作码在程序中的平均长度,节省存储空间,又可缩短常用指令的译码时间以提高程序的运行速度。其缺点是译码系统比固定操作码复杂,增加了设计控制器的难度,需要更多的硬件作支持。43计算机与信息科学系董阿妮讲师arnnydong号:648165.2指令格式5.2.1指令格式5.2.2指令操作码的扩展技术5.2.3指令长度与字长的关系44计算机与信息科学系董阿妮讲师arnnydong号:648165.2.3指令长度与字长的关系机器字长机器字长度简称字长,指计算机能直接处理的二进制数据的位数。字长是计算机中的一项重要技术指标,字长越长,计算机的运算精度越高;字长还能反映指令的直接寻址能力,若字长n位全用来寻址,可直接寻址2n个字节。为了便于处理字符数据及尽可能地利用存储空间,一般把机器字长定为字节长度(8位)的整数倍,即是8位、16位、32位或64位。微型、小型机的字长多为8位、16位和32位,中、大型机的字长多为32位和64位。因此,一个字中可以存储1个、2个、4个或8个字符。45计算机与信息科学系董阿妮讲师arnnydong号:648165.2.3指令长度与字长的关系指令字长指令字的长度取决于操作码的长度、操作数地址的长度和操作数地址的个数。由于操作码的长度、操作数地址的长度以及所采用操作数地址数目不同,各种指令的长度不是固定的,当然也不是任意的。为了充分利用存储空间,指令字的长度也定为字节长度的整数倍。例如INTEL8086/80586系列机的指令长度分别为8位、16位、24位、32位、48位等。而最长的指令可达120位。46计算机与信息科学系董阿妮讲师arnnydong号:648165.2.3指令长度与字长的关系指令字长与机器字长的关系指令字长度与机器字长度没有固定的关系,它可以等于机器字长,也可以大于或小于机器字长。指令字长度等于机器字长度的指令,称为单字长指令;指令字长等于两个机器字长的指令,称为双字长指令;指令字长度只有半个机器字长度的指令,称为半字长指令。例如IBM370系列机的机器字长为32位,它却有16位的半字长指令、32位的单字长指令、48位的一个半字长指令。47计算机与信息科学系董阿妮讲师arnnydong号:648165.2.3指令长度与字长的关系等字长指令结构在同一个指令系统中,所有的指令字长度都是相等的,称为等字长指令字结构,这种指令字结构简单,控制方便;变字长指令结构如果各种指令字长度随指令的功能而变化,如有的指令是单字长指令,有的指令是双字长指令或三字长指令,则称为变字长指令结构,这种指令字结构灵活,能充分利用指令字长度,但指令的控制较复杂。48计算机与信息科学系董阿妮讲师arnnydong号:648165.2.3指令长度与字长的关系各种指令字的结构情况地址
II+1I+2I+3指令指令指令指令┆一个字长┆┆指令指令指令指令地址
II+1I+2I+3一个字长指令指令指令指令┆地址
II+1I+2I+3指令1指令2一个字长┆单字长指令双字长指令半字长指令变字长指令指令3一个字长地址II+1I+2I+3I+4I+5I+6指令1指令2┆49计算机与信息科学系董阿妮讲师arnnydong号:64816第5章
指令系统5.1指令系统的发展5.2指令格式5.3数据表示5.4寻址方式(编址方式)5.5指令类型5.6指令系统的兼容性5.7精简指令系统计算机(RISC)和复杂指令系统(CISC)5.8指令系统举例5.9机器语言、汇编语言和高级语言50计算机与信息科学系董阿妮讲师arnnydong号:648165.3数据表示在计算机的基本数据有逻辑(布尔)数、定点数(整数)、浮点数(实数)、十进制数、字符串、数组等。对这些数据的运算可以设置专门的指令;也可以仅设置最简单的算术逻辑运算指令,而通过程序的执行实现其他类型数据的处理,但后者的速度下降很多。在机器中若设置能够直接对矩阵向量数据(数组)进行运算的指令及硬件,可以大大提高对向量、数组的处理速度,这一般在巨型机中才采用。51计算机与信息科学系董阿妮讲师arnnydong号:648165.3数据表示目前计算机所用数据字长大部分已经达到64位。存储器的地址,一般按字节表示。计算机的指令系统可支持对字节、半字、字、双字的运算,有些计算机有位处理指令。52计算机与信息科学系董阿妮讲师arnnydong号:648165.3数据表示边界对齐问题为便于硬件实现,一般要求多字节数据对准边界。当所存数据不能满足此要求时,则填充一个至多个空白字节。53计算机与信息科学系董阿妮讲师arnnydong号:648165.3数据表示也有的计算机不要求对准边界,但可能增加访问存储器次数。在不按边界对准的计算机中,访存指令所要求存取的数据,可能在两个存储单元中,因此需要访问两次存储器,而且还要对高低字节的位置进行调整。54计算机与信息科学系董阿妮讲师arnnydong号:64816第5章
指令系统5.1指令系统的发展5.2指令格式5.3数据表示5.4寻址方式(编址方式)5.5指令类型5.6指令系统的兼容性5.7精简指令系统计算机(RISC)和复杂指令系统(CISC)5.8指令系统举例5.9机器语言、汇编语言和高级语言55计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)存储器既可用来存放数据,又可用来存放指令。因此,当某个操作数或某条指令存放在某个存储单元时,其存储单元的编号,就是该操作数或指令在存储器中的地址。形式地址:指令中直接给出的地址;有效地址:操作数所在的真实地址;即实际访问的存储单元地址。56计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)在存储器中,操作数或指令字写入或读出的方式,有地址指定方式、相联存储方式和堆栈存取方式。几乎所有的计算机,在内存中都采用地址指定方式。当操作数或指令字写入或读出的方式采用地址指定方式时,形成操作数或指令地址的方式,称为寻址方式。也就是从形式地址生成有效地址的各种方式。由于程序和数据的存入和取出都要与存储器打交道,因此寻址方式又统称为存储器访问技术。57计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)寻址的目的丰富程序设计手段,提高程序质量;减少访问主存的次数,压缩程序占用的存储空间。保证指令的地址码字段尽可能缩短,而访问的存储空间尽可能地大。58计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)寻址方式分为两类,即指令寻址方式和数据寻址方式。前者比较简单,后者比较复杂。因为操作数本身不能像指令那样顺序排列,很多操作数是公用的,集中放在某一划定的区域。59计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)指令的寻址方式指令的寻址方式有两种,一种是顺序寻址方式,另一种是跳跃(转移)寻址方式。顺序寻址方式指令地址在内存中按顺序安排,当执行一段程序时,通常是一条指令接一条指令的顺序执行。从存储器取出第一条指令,然后执行这条指令;接着从存储器取出第二条指令,再执行第二条指令;接着再取出第三条指令……这种程序顺序执行的过程,我们称为指令的顺序寻址方式。为此,必须使用程序计数器(又称指令指针寄存器)PC来计数指令的顺序号,该顺序号就是指令在内存中的地址。60计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)61计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)转移寻址方式当程序转移执行的顺序时,指令的寻址就采取转移寻址方式。所谓转移,是指下条指令的地址码不是由程序计数器给出,而是由本条指令给出。程序转移后,按新的指令地址开始顺序执行。指令计数器的内容也必须相应改变,以便及时跟踪新的指令地址。采用指令转移寻址方式,可以实现程序转移或构成循环程序,从而能缩短程序长度,或将某些程序作为公共程序引用。指令系统中的各种条件转移或无条件转移指令,就是为了实现指令的转移寻址而设置的。62计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)663计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)操作数的寻址方式操作数的寻址就是寻找操作数的地址,其目的是寻找所需要的操作数。寻址方式就是指寻找操作数地址所用的方法,它与计算机的硬件结构密切相关,对指令的格式和功能都有极大的影响。由于各种计算机的硬件结构各不相同,指令格式亦多种多样,因而,寻址方式也就千差万别。这里仅对常见的操作数地址寻址方式作介绍。用这些最基本的寻址方式可以组合成各类计算机中更为复杂的寻址方式。64计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)立即寻址(立时寻址、立即操作数)指令的地址字段指出的不是操作数的地址,而是操作数本身,这种寻址方式称为立即寻址。在微型和小型计算机中,内存是按字节编址的。若前一个字节是操作码,紧跟着的第二个字节就是立即操作数。因此,立即数寻址又称为邻接型寻址,或者说,操作数紧跟着操作码。OP立即数65计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)立即寻址的指令执行起来很快,CPU将数据与指令一起从存储器取出,不必通过寻址计算就获得了操作数,也不必再次访问存储器。提高了指令的执行速度,但操作数只是指令的一部分,其数值受到了限制。便于程序员使用。但因为数据和地址都是固定的,所以灵活性最差。可用来提供常数,设置初始值。66计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)直接寻址在指令格式的地址字段中直接指出操作数在内存的地址D,即操作数地址在指令中。对于使用次数很少又不需要做什么变化的地址码,可采用直接寻址方式。指令中的地址D就是操作数的有效地址。E=D67计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)68计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)间接寻址是相对于直接寻址而言的,在间接寻址的情况下,指令地址字段中的形式地址D不是操作数的真正地址,而是操作数地址的指示器,或者说D单元的内容才是操作数的有效地址。即操作数地址在内存中。69计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)指令中的地址码部分给出的既不是操作数,又不是操作数的地址,而是存放操作数地址的内存单元的地址,这个地址叫做间接地址。其寻址方式称为间接寻址方式,简称间址。70计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)间接寻址可分为一级间接寻址和多级间接寻址多级间接寻址方式的一级间接地址用指令间址表征,二级以后的间接地址用间址的第一位作为多级间接寻址标志。其缺点是要多次访问存储器,延缓了指令执行的速度。71计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)间接寻址似乎很复杂,但却比直接寻址灵活的多;采用间接寻址方式可用指令的短地址访问存储器的任何单元。例:指令包括的间址只有8位,只能表示28个单元。通过间址操作后,从存储器取出16位有效地址就能访问整个64KB的空间了。72计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)间接寻址方式实现简便,对编程带来较大的灵活性,但是它多次访问内存,增加了指令的执行时间;占用主存储器单元多。对程序编制能带来较大的灵活性表现在:间接寻址方式的指令可以访问大的存储空间,扩大了指令的寻址能力。当操作数地址改变时,只需修改间接地址指示器的单元内容,而不必修改指令,原指令的功能照样实现。这给程序编制带来很大方便。73计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)例如:内存MOVX2
Ri
Ri10252200122000132
3100310010250操作码特征寄存器号地址码DMOV操作码特征寄存器号地址码D内存Ri03200X2
Ri
0132013232001025MOV102574计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)寄存器寻址在现在流行的指令系统中,使用通用寄存器越来越多,这是计算机结构发展的趋势。现在的小型计算机和大型计算机通用寄存器的数量达32个。这种发展增强了计算机指令系统的功能,并提高了灵活性。通用寄存器可作为累加器、变址器、基址器、堆栈指示器、程序状态寄存器和各种状态寄存器等。当操作数不放在内存中,而是放在CPU的通用寄存器中时,可采用寄存器寻址方式。75计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)寄存器寻址方式含义:把指令字中的地址码用寄存器编号来代替,寄存器的作用由寻址方式来指定。目的:引入寄存器参与寻址过程的目的是改善寻址的质量。76计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)通用寄存器参与寻址过程,带来如下特点:压缩指令字长度或腾出更多的位让给操作码,以产生更多的操作功能。加快寻址过程和数据流动,从而加快指令的执行速度。可扩大寻址范围。给程序设计增加许多新的手段。缺点:开始时必须把数据存入通用寄存器,跟踪其内容的变化,并需将内容放回存储器以便保存。77计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)寄存器直接寻址地址码给出寄存器编号,寄存器内容就是操作数,这种方法称寄存器直接寻址。使用寄存器直接寻址的双地址指令格式是:操作:(R1)OP(R2)→R2这是一种寄存器-寄存器指令,常用于实现算术操作与逻辑操作。寄存器直接寻址还可以与直接、间接寻址搭配称组合型寻址方式。OPR1R278计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)寄存器-存储器操作的双地址指令格式。79计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)寄存器间接寻址以寄存器的内容为地址访问存储器后获得操作数称为寄存器间接寻址。使用寄存器间接寻址的双指令格式是:操作:((R1))OP((R2))→R2双括号表示间接寻址,本质上是存储器-存储器操作指令。这种寻址方式比普通的间接寻址方式快,因为它不必从存储器取出有效地址,而且寄存器地址比存储器的地址短。OP@R1@R280计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)例:执行ADD@Ri
指令时,说明Ri不是操作数的有效地址,而是存放操作数有效地址的寄存器号。
ADD
@
Ri操作数地址
Ri内存操作数操作码寻址特征寄存器号81计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)82计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)基址寻址方式当存储容量较大,所需地址码的长度大于字长时,指令中的地址码部分直接给出的地址不可能直接访问存储器的所有单元。因此,把整个存储空间分成若干段,每段的首地址存放在一个基址寄存器中,段内的位移量由指令直接给出。于是,存储器的实际地址就等于基址寄存器的内容加上段内位移量。这就叫做基址寄存器寻址方式,简称基址寻址。83计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)基址寻址方式是大型机采用的一种技术。它将用户程序的逻辑地址转换成主存的物理地址。基址寻址方式有效地址的公式为:有效地址E=基址值(B)+位移量(D)基址寻址方式是在管态方式下使用的修改指令地址字段的一种技术。址84计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)85计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)变址寻址方式变址寻址是将指令中的基地址码和一个“变址值”相加后形成操作数的有效地址。“变址值”存放在一个专用的变址寄存器Ri中或专用的内存单元中。变址值是根据程序需要而设置的,与本条指令中的地址长度无关,只要变址寄存器的字长足够长,可以进行内存全容量的访问。使用起来十分灵活。86计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)提供变量值的通用寄存器称为变址寄存器。指令地址字段提供的直接地址又称为形式地址,记为D。变址寻址方式指定某寄存器作为变址寄存器,并在指令地址段中给出一个形式地址,变址寄存器的内容与形式地址之和就是有效的操作数地址。计算机有效地址的公式为:有效地址E=变址值(Rx)±形式地址D。使用变址寻址方式的目的不在于扩大寻址空间,而在于实现程序块的规律变化。87计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)变址器提供的变址值作为基准地址的话,形式地址则提供对基地址的两个方向的位移,这种形式又称为位移寻址方式,常数D称为位移量,它是带有符号的数字。88计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)89计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)内存20501000操作码寻址特征变址单元号opX3
Ri00801080基地址码D内存操作码寻址特征变址器号基地址码D
2050
1080变址寄存器
1000Ri
OP
X3
Ri
0080X3=1EA=(Ri)+D X3=1EA=(Ri)+D有效地址
EA=1000+0080=1080 有效地址EA=1000+0080=1080操作数=(1080)=2050 操作数=(1080)=2050(a)Ri为变址寄存器时的变址寻址 (b)Ri为内存变址单元时的变址寻址90计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)变址寻址的特点:变址寻址速度要比直接寻址慢,因为CPU必须执行一次加法操作以获得有效地址。由于变址寄存器字长和机器字长相等,变址后的有效地址比形式地址长得多,能够寻遍整个寻址空间,扩大了寻址范围。多次使用Rx的变址值,使得硬件参与地址的计算过程,能压缩程序的指令条数,加快指令的执行。91计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)变址寻址进一步发展成为具有自动增/减变址功能的寻址方式。变址寻址和间接寻址相结合也是一种技巧性很强的寻址手段。按操作顺序可分为前置变址和后置变址寻址。两种寻址功能都能生成直接地址。前置寻址方式是先变址后间址。后置寻址方式是先间址后变址。后置变址技术更多应用于小型/微型机设计上。92计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)93计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)94计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)OPX4Ri
0080
100010802000内存20000300RiOPX5Ri
00801000130002000800内存Ri操作码寻址特征变址器号基地址码DX4=1EA=((Ri)+D) X5=1EA=(D)+(Ri)有效地址
EA=(1000+0080)=2000 有效地址
EA=1300+1000=2300操作数
=(2000)=0300 操作数
=(2300)=0200(a)前置变址方式 (b)后置变址方式95计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)基址和变址的应用方向基址寻址面向系统,主要用于逻辑地址到物理地址的变换,用来解决程序在主存储器中的再定位和扩大寻址空间等问题。在一些大型机中,基址寄存器是由管理程序利用特权指令来使用,用户程序无权修改它,从而确保了系统的安全性。变址寻址则面向用户,用于访问字符串、向量和数组等成批数据。在一些小型机或微型机中,基址寻址和变址寻址实际上已经合二为一了。96计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)相对寻址方式相对寻址是把程序计数器PC的内容加上指令格式中的形式地址D而形成操作数的有效地址。程序计数器的内容就是当前指令的地址。“相对”寻址,就是相对于当前的指令地址而言。此时形式地址D通常称为偏移量,其值可正可负,相对于当前指令地址进行浮动。97计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)相对寻址方式是变址寻址方式的特例。相对寻址时,以程序计数器为变址器,指令地址为变址值,与指令提供的位移地址相加,从而得到有效地址。公式:有效地址E=现行程序地址(PC)±位移量(D)相对地址指出的地址是与现行指令地址之间的相对位置,而不是绝对地址。98计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)用法:当不同用户使用同一标准子程序时,若能将该程序装入不同的存储区并就地运行,它要求子程序内部地址相对独立而与用户程序的地址无关。若一组指令以保持它们间的相对距离不变这样一种方法移动,那么对存储器的所有位置都能使用相对于PC的同一个偏移值。这种情况下我们可以采用相对寻址方式。99计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)例:将某一个标准子程序浮动300个单元,执行加法指令的结果仍然不变。100计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)隐含寻址在指令中不明显地给出操作数的地址,其操作数或操作数的地址隐含在某个通用寄存器中或指定的存储单元中。例如:单地址的指令格式,没有在地址字段中指明第二操作数地址,而是规定累加寄存器AC作为第二操作数地址,AC对单地址指令格式来说是隐含地址。这种方式可以缩短指令的长度,在字长较短的微型机或小型机中被广泛采用。101计算机与信息科学系董阿妮讲师arnnydong号:648165.4寻址方式(编址方式)堆栈寻址方式堆栈是一组能存储和取出数据的暂时存储单元,在这一点上,堆栈有点像存储器;很多计算机把存储器的一部分用作堆栈;堆栈和其它形式的存储器之间的差别是:它们对数据的存取方法和寻址方式有所不同;堆栈采用“后进先出”的工作方式。102计算机与信息科学系董阿妮讲师arnnydong号:64816第5章
指令系统5.1指令系统的发展5.2指令格式5.3数据表示5.4寻址方式(编址方式)5.5指令类型5.6指令系统的兼容性5.7精简指令系统计算机(RISC)和复杂指令系统(CISC)5.8指令系统举例5.9机器语言、汇编语言和高级语言103计算机与信息科学系董阿妮讲师arnnydong号:648165.5指令类型5.5.1指令的分类及功能5.5.2双字长介绍(子程序举例)104计算机与信息科学系董阿妮讲师arnnydong号:648165.5.1指令的分类及功能指令系统决定了计算机的基本功能,因此指令系统的设计是计算机系统设计中的一个核心问题。它不仅与计算机的硬件结构紧密相关,而且直接影响到编写操作系统和编写编译程序的难易程度。设计一个合理而又有效的指令系统是至关重要的,它对机器的性能价格比有很大影响。一台计算机最基本的、必不可少的指令是不多的,因为很多指令都可以用最基本的指令组合来实现。105计算机与信息科学系董阿妮讲师arnnydong号:648165.5.1指令的分类及功能一台计算机的指令系统通常有上百条或几百条指令,从它们所完成的功能来看,一个较为完善的指令系统,应具备以下各类指令。算术逻辑运算指令移位操作指令数据传送指令程序控制指令输入输出指令堆栈及堆栈操作指令字符串处理指令多处理机指令向量运算指令特权指令陷阱(TRAP)指令其他指令106计算机与信息科学系董阿妮讲师arnnydong号:648165.5.1指令的分类及功能算术逻辑运算指令这类指令主要用于定点或浮点的算术运算。定点加、减、乘、除运算和浮点加、减、乘、除运算、二进制运算和十进制运算。逻辑加法、逻辑乘法、按位加、求反运算,以及数值的左、右移位和比较指令。大型机(如IBM370机、国产银河机、CRAY-1机、CDC的STAR-100机等)中还设置有向量运算指令,可直接对整个向量或矩阵进行求和、求积运算。107计算机与信息科学系董阿妮讲师arnnydong号:648165.5.1指令的分类及功能移位操作指令移位操作指令分为算术移位、逻辑移位和循环移位三种,可以将操作数左移或右移若干位。算术移位和逻辑移位很类似,但由于操作对象不同(前者带符号、后者无符号)而移位操作有所不同。主要差别在于右移时,填入最高位的数据不同。108计算机与信息科学系董阿妮讲师arnnydong号:648165.5.1指令的分类及功能算术移位的一个重要的作用是用于实现简单的乘除运算。算术左移或右移n位,实现对带符号数据乘以2n或整除以2n的运算;同样,逻辑左移或右移n位,分别实现对无符号数据乘以2n或整除以2n的运算。移位指令的执行时间比乘除运算的执行时间短。因此采用移位指令来实现上述乘法、除法运算可取得较高的速度。109计算机与信息科学系董阿妮讲师arnnydong号:648165.5.1指令的分类及功能数据传送指令这类指令的功能是实现寄存器与寄存器,寄存器与存储单元以及存储单元与存储单元之间的数据传送。传送指令包括将数据从存储器送入寄存器的取数指令,把运算结果从寄存器送入存储器的存储指令,存储器内数据从某一地址移往另一些地址的传送指令等。110计算机与信息科学系董阿妮讲师arnnydong号:648165.5.1指令的分类及功能程序控制指令在执行程序时,控制各种动作的指令为控制指令。包括根据对条件的判断改变程序执行顺序的转移指令(条件转移指令),也有无条件转移到指定地址的转移指令,还有停止执行程序的停止指令和机器内的某些指示器的置位、复位指令等。置位:把两状态存储器件(如触发器)置成“1”态。复位:把两状态存储器件或计数器置成“0”态。111计算机与信息科学系董阿妮讲师arnnydong号:648165.5.1指令的分类及功能程序控制指令也称转移指令。执行程序时,有时机器执行到某条指令时,出现了几种不同结果,这时机器必须执行一条转移指令,根据不同结果进行转移,从而改变程序原来执行的顺序。这种转移指令称为条件转移指令。112计算机与信息科学系董阿妮讲师arnnydong号:648165.5.1指令的分类及功能除各种条件转移指令外,还有无条件转移指令、转子程序指令、返回主程序指令、中断返回指令等。转移指令的转移地址一般采用直接寻址和相对寻址方式来确定。转子指令是转向本指令操作地址所指出的子程序入口,并将原程序中下一条指令地址存入内存某单元(或指定的某个寄存器)中,以便为返回主程序时提供返回地址。113计算机与信息科学系董阿妮讲师arnnydong号:648165.5.1指令的分类及功能输入输出指令输入输出指令主要用来启动外围设备,检查测试外围设备的工作状态,并实现外部设备和CPU之间,或外围设备与外围设备之间的信息传送。输入输出指令是使输入输出设备动作的指令。输入输出设备的种类很多,并且动作也很复杂,这类指令必须能控制很多种类的动作。因此简单的指令是无法完成这类功能的,现代计算机多采用通道方式来进行操作,也就是通过通道指令来完成。114计算机与信息科学系董阿妮讲师arnnydong号:648165.5.1指令的分类及功能堆栈及堆栈操作指令堆栈:是若干个存储单元(或寄存器)的有序集合,它顺序地存放一组元素。数据的存取都只能在栈顶单元内进行,即数据的进栈与出栈都只能经过栈顶单元这个“出入口”。堆栈中的数据采用“先进后出”或“后进先出”的存取工作方式。115计算机与信息科学系董阿妮讲师arnnydong号:648165.5.1指令的分类及功能堆栈结构在计算机中的作用具有堆栈结构的机器使用零地址指令,不仅指令长度短,指令结构简单,机器硬件简化。实现程序调用,子程序嵌套调用和递归调用。对于“中断”技术,堆栈更是不可缺少的,保存“断点”和“现场”。116计算机与信息科学系董阿妮讲师arnnydong号:648165.5.1指令的分类及功能堆栈的操作设数据进栈方向为从高地址向低地址发展;当向堆栈压入数据时,SP(堆栈指针stackpointer)的内容先自动递减而指向一个新的空栈顶单元,再把数据写入此栈顶单元;当数据弹出堆栈时,立即读出SP所指向的栈顶单元内容,再把SP内容自动递增而指向新的栈顶位置。117计算机与信息科学系董阿妮讲师arnnydong号:648165.5.1指令的分类及功能118计算机与信息科学系董阿妮讲师arnnydong号:648165.5.1指令的分类及功能字符串处理指令字符串处理指令是一种非数值处理指令,一般包括字符串传送、字符串转换(把一种编码的字符串转换成另一种编码的字符串)、字符串比较,字符串匹配,字符串替换(把某一字符串用另一字符串替换)等。这种类型的指令对大量字符串进行各种处理的文字编辑和排版方面非常有用。119计算机与信息科学系董阿妮讲师arnnydong号:648165.5.1指令的分类及功能多处理机指令出现在多处理机或多处理器系统中,比如用于共享资源管理的“测试与设定”指令,相互通信时的“数据交换”指令。这类指令最主要的特点是在指令执行过程中不允许打断,这样可以避免多个处理器同时读取和修改共享数据区。120计算机与信息科学系董阿妮讲师a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 质量检测合同模板
- 2024年度平房区环境整治:建筑施工合同范本
- 开发商授权拆迁补偿合同
- 2024年住家保姆工作协议
- 劳务协议书样式
- 简单工程承包协议范例
- 2024标准临时用工合同样本
- 2024年苏州市租房合同范本
- 拼车服务协议示例
- 2024中介的买卖合同书范文
- 初中语文人教七年级上册要拿我当一挺机关枪使用
- 北京颂歌原版五线谱钢琴谱正谱乐谱
- 病史采集和临床检查方法
- PSUR模板仅供参考
- 火力发电企业作业活动风险分级管控清单(参考)
- 民法典合同编之保证合同实务解读PPT
- 全国第四轮学科评估PPT幻灯片课件(PPT 24页)
- 大气污染控制工程课程设计-某厂酸洗硫酸烟雾治理设施设计
- 名牌包包网红主播电商直播带货话术脚本
- 高考语文作文素材人物速递——苏炳添课件18张
- 蛋鸡养殖场管理制度管理办法
评论
0/150
提交评论