资源预览内容
第1页 / 共159页
第2页 / 共159页
第3页 / 共159页
第4页 / 共159页
第5页 / 共159页
第6页 / 共159页
第7页 / 共159页
第8页 / 共159页
第9页 / 共159页
第10页 / 共159页
亲,该文档总共159页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第5章 指令系统,5.1 指令系统的发展 5.2 指令格式 5.3 数据表示 5.4 寻址方式(编址方式) 5.5 指令类型 5.6 指令系统的兼容性 5.7 精简指令系统计算机(RISC)和复杂指令系统(CISC) 5.8 指令系统举例 5.9 机器语言、汇编语言和高级语言,5.1 指令系统的发展,计算机系统主要由硬件和软件两部分组成。软件最终转换成一系列机器指令后在计算机上执行。 每条指令规定机器完成一定的功能。 指令系统:一台计算机中所有机器指令的集合称为这台计算机的指令系统。 指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也直接影响到系统软件,影响到机器的适用范围。,5.1 指令系统的发展,20世纪50年代和60年代早期: 计算机所支持的指令系统只有定点加减、逻辑运算、数据传送和转移等十几至几十条最基本的指令; 寻址方式简单。 60年代后中、后期: 指令系统越来越丰富,增加了设置乘除法运算指令、浮点运算指令、十进制运算指令以及字符串处理指令等,指令数达一、二百条; 寻址方式趋于多样化。,5.1 指令系统的发展,为了满足各计算机上的软件的兼容性,以便在旧机器上编制的各种软件也能在新的、性能更好的机器上正确运行,因此,在60年代出现了系列计算机。 系列计算机:基本指令系统相同,基本体系结构相同的一系列计算机。 IBM370系列、VAX11系列、IBMPC(XT/AT/286/386/486/Pentium)微机系列 系列机能解决软件兼容问题的必要条件是该系列的各机种有共同的指令集,而且新推出的机种的指令系统一定包含旧机种的所有指令,因此,在旧机种上运行的各种软件可以不加任何修改地在新机种上运行。,5.1 指令系统的发展,指令系统决定了计算机的基本功能,因此指令系统的设计是计算机系统设计的一个核心问题。 指令系统不仅与计算机的硬件设计紧密相关,而且直接影响到系统软件设计的难易程度。 各计算机执行的指令系统决定了机器所要求的能力,同时也决定了指令的格式和机器的结构。不同结构的机器和不同的指令格式应该具有与之相匹配的指令系统。 为此,设计指令系统时,应重视以下几个方面: 指令格式 类型 操作功能,5.1 指令系统的发展,一个完善的指令系统应满足如下几方面的要求: 完备性:是指用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现。完备性要求指令系统丰富、功能齐全、使用方便。 有效性:是指利用该指令系统所编写的程序能够高效率地运行。高效率主要表现在程序占据存储空间小、执行速度快。 规整性:包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。,5.1 指令系统的发展,对称性:在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式。 匀齐性:一种操作性质的指令可以支持各种数据类型; 兼容性:至少要能做到“向上兼容”,即低档机上运行的软件可以在高档机上运行。,5.1 指令系统的发展,计算机的性能与它所设置的指令系统有很大关系,而指令系统的设置又与机器的硬件结构密切相关。 通常性能较好的计算机都设置有功能齐全、通用性强、指令丰富的指令系统,但这需要复杂的硬件结构来支持。,5.1 指令系统的发展,然而,指令结构太复杂也会带来一些不利的因素,如设计周期长,正确性难以保证且不易维护等。 实验证明,在如今庞大的指令系统中,只有诸如算术、逻辑运算、数据传送、转移和子程序调用等几十条最基本的指令才是经常使用的,而需要大量硬件支持的大多数较复杂的指令却利用率很低,造成硬件资源上的极大浪费。,第5章 指令系统,5.1 指令系统的发展 5.2 指令格式 5.3 数据表示 5.4 寻址方式(编址方式) 5.5 指令类型 5.6 指令系统的兼容性 5.7 精简指令系统计算机(RISC)和复杂指令系统(CISC) 5.8 指令系统举例 5.9 机器语言、汇编语言和高级语言,5.2 指令格式,从计算机组成的层次结构来说,指令分为: 微指令:是微程序级的命令,它属于硬件; 宏指令:是由若干条机器指令组成的软件指令,它属于软件; 机器指令:则介于微指令与宏指令之间,通常简称为指令。每一条指令可完成一个独立的算术运算或逻辑运算操作。 本章所讨论的指令,是机器指令。,5.2 指令格式,5.2.1 指令格式 5.2.2 指令操作码的扩展技术 5.2.3 指令长度与字长的关系,5.2.1 指令格式,计算机的指令格式与机器的字长、存储器的容量及指令的功能密切相关。 根据不同的机器,指令的格式也是多样化的,为了使硬件能执行不同类型的操作,指令必须是二进制编码。 指令字一般为计算机的一个字长度,在该字中包含操作码、地址码、各种特征和校验码等信息。,5.2.1 指令格式,一条指令应包含如下信息: 进行何种操作:即操作性质。体现在指令中被称为操作码。 操作的对象:数据来源以及如何寻找操作数。体现在指令中被称为地址码。 操作结果:结果存放在何处。 下一条指令的地址: 顺序执行时,下条指令的地址由计数器(PC)指出; 当改变程序的运行顺序(如转移、调用子程序)时,下条指令的地址才由指令给出。,5.2.1 指令格式,表示一条指令的机器字,就称为指令字,通常简称指令。 指令字长度:一个指令字中包含二进制代码的位数。 机器字长:计算机能直接处理的二进制数据的位数,它决定了计算机的运算精度。 指令格式:是指令字用二进制代码表示的结构形式。,5.2.1 指令格式,指令由操作码和地址码两部分组成,它的基本格式如下:,5.2.1 指令格式,操作码 操作码是说明指令操作性质的二进制数代码。 操作码字段表征指令的操作特性与功能; 指令的操作码表示该指令应进行什么性质的操作,如进行加法、减法、乘法、除法、取数、存数等等。 操作码所占的二进制位数决定了一台计算机所能允许的指令条数。 例如,操作码占用六位二进制码时,这台计算机最多允许有: 2664 条指令,5.2.1 指令格式,组成操作码字段的位数一般取决于计算机指令系统的规模。 每条指令都要求它的操作码必须是独一无二的位组合。 指令系统中指令的个数N与操作码的位数n,必须满足关系式: N2n,5.2.1 指令格式,地址码 地址码字段通常指定参与操作的操作数地址和运算结果的地址。 根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令。 指令中的地址码用来指出该指令的源操作数地址(一个或两个)、结果地址及下一条指令的地址。 这里的地址可以是主存地址,也可以是寄存器地址,甚至可以是I/O设备的地址。 目前二地址和一地址指令格式用的最多。,5.2.1 指令格式,零地址指令 零地址指令的指令字中只有操作码,而没有地址码。 指令格式: 执行零地址指令时,被运算的操作数地址全部是隐含的,指令格式中只说明作什么操作。 这种指令有两种可能: 无需任何操作数。如空操作指令,停机指令等。 所需的操作数是默认的:堆栈。,5.2.1 指令格式,一地址指令 指令中只给出一个操作数地址,另一个操作数地址和目的地址则是隐含的。这个隐含的地址就是运算器的累加寄存器AC。 一地址指令常称为单操作数指令。 指令格式: 操作:(AC)OP(A)AC 指令中给出的一个地址既是操作数的地址,又是操作结果的存储地址。,5.2.1 指令格式,指令中提供的一个地址提供一个操作数,另一个操作数是由机内硬件寄存器“隐含”地自动提供的。 所谓“隐含”是指此操作数在指令中不出现,而是按照事先约定由寄存器默认提供,运算结果仍送到寄存器中。 因为这个寄存器在连续运算时,保存着多条指令连续操作的累计结果,故称为累加器(AC)。,5.2.1 指令格式,采用一地址指令编写的程序,其指令在内存中也要顺序存放,由程序计数器自动增量控制其顺序执行。程序转向时,也用转移指令改变程序的执行方向。 在程序执行前,必须用一条“取数指令”把其中一个操作数放到累加寄存器中。程序结束后,累加寄存器的内容已被修改。若要将累加寄存器中的结果送回内存,则必须使用“存数指令”。 完成一条指令只需两次访存。,5.2.1 指令格式,二地址指令 二地址指令有两个地址码字段A1和A2,分别指明参与操作的两个数在内存中或运算器通用寄存器的地址,其中地址A2兼做存放操作结果的地址。 指令格式: 操作:(A1)OP(A2)A2 OP:操作码; A1:第一操作数地址; A2:既作第二操作数地址,又作目的地址。,5.2.1 指令格式,把保存操作前原来操作数的地址称为源点地址,把保存指令执行结果的地址称为终点地址或目的地址。 将源点与终点操作数进行操作码规定的操作后,将结果存入终点地址。 通常二地址指令又称为双操作数指令。,5.2.1 指令格式,使用二地址指令编写的程序,其指令在内存中也要依次存放,才能用程序计数器自动增量使之顺序执行。若程序发生转向时,也必须用转移指令改变程序的执行顺序。 当二地址指令执行之后,A2中的内容被修改了。 有的机器规定A1为目的地址,这时则是A1的内容被修改了。,5.2.1 指令格式,在二地址指令格式中,从操作数的物理位置来说,可归结为三种类型: 存储器存储器(SS)型指令:访问内存的指令格式 寄存器寄存器(RR)型指令:访问寄存器的指令格式 寄存器存储器(RS)型指令,5.2.1 指令格式,三地址指令 三地址指令字中有三个操作数地址A1,A2和A3。 指令格式: 操作: (A1)OP(A2)A3 其操作是对A1、A2指出的两个操作数进行操作码所规定的操作,并将结果存入A3中。,5.2.1 指令格式,多地址指令格式 例如四地址指令格式。 指令格式: 操作:(A1)OP(A2) A3 OP:操作码; A1:第一地址码,存放第一操作数; A2:第二地址码,存放第二操作数; A3:第三地址码,存放操作结果; A4:第四地址码,存放下条要执行指令的地址。,5.2.1 指令格式,多地址指令格式的特点: 直观明了; 程序执行的流向明确; 操作数和结果可以分散在内存各处。 但是指令字长度太长。 这种指令直观易懂,后续指令的地址可任意填写。 因为程序中大部分指令都是顺序执行的,当采用指令计数器后,A4地址可以省去。,5.2.1 指令格式,指令格式设计准则 指令字长要短,以得到时间和空间上的优势。 指令字长必须有足够的长度。 指令字长一般应是机器字符长度的整数倍以便存储系统的管理。若机器中字符码长是L位,则指令字长最好是L,2L,4L,8L等。 指令格式的设计还与如何选定指令中操作数地址的位数有关。,5.2.1 指令格式,指令格式举例: 8位微型机: 字长只有8位,指令格式包含单字长指令、双字长指令、三字长指令等多种。 内存按字节编址,所以单字长指令每执行一条指令后,指令地址加。双字长指令或三字长指令每执行一条指令时,指令地址要加2或加3,可见多字长的指令格式不利于提高机器速度。 Pentium指令格式:指令字长度是可变的:从1字节到12字节,还可以带前缀(对其后的指令本身进行显示约定,每个前缀占个字节 )。,5.2 指令格式,5.2.1 指令格式 5.2.2 指令操作码的扩展技术 5.2.3 指令长度与字长的关系,5.2.2 指令操作码的扩展技术,操作码字段分两种: 固定长度操作码 固定长度操作码是指操作码所占的二进制位数固定不变,而且集中放在指令字的一个字段中。 这种格式有利于简化硬件设计,减少指令译码时间,广泛用于字长较长的大、中型计算机和超级小型计算机中。 例如IBM370和VAX11系列机中,操作码的长度都是8位,可表示256条指令。,5.2.2 指令操作码的扩展技术,可变长度操作码 可变长度操作码是操作码扩展技术的应用,即操作码的长度是可变的,且分散地放在指令的不同字段中。 这种格式有利于压缩程序中操作码的平均长度,在字长较短的微型机中被广泛应用。 如:PDP11,INTEL 8086/80386等,其操作码的长度均是可变的。,5.2.2 指令操作码的扩展技术,PDP/11系列机指令格式,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号