计算机组成原理第二版课件 组成原理第三章

上传人:E**** 文档编号:89540815 上传时间:2019-05-27 格式:PPT 页数:55 大小:445KB
返回 下载 相关 举报
计算机组成原理第二版课件 组成原理第三章_第1页
第1页 / 共55页
计算机组成原理第二版课件 组成原理第三章_第2页
第2页 / 共55页
计算机组成原理第二版课件 组成原理第三章_第3页
第3页 / 共55页
计算机组成原理第二版课件 组成原理第三章_第4页
第4页 / 共55页
计算机组成原理第二版课件 组成原理第三章_第5页
第5页 / 共55页
点击查看更多>>
资源描述

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

1、计算机组成原理,宋红 ,第三章 指令系统,3-1 指令系统的发展与要求 3-2 指令格式 3-3 寻址方式 3-4 指令类型,31 指令系统的发展与要求,计算机的指令有微指令、机器指令和宏指令之分。微指令是微程序级的命令,它属于硬件;宏指令是由若干条机器指令组成的软件指令,它属于软件;而机器指令则介于微指令与宏指令之间,通常简称为指令,每一条指令可完成一个独立的算术运算或逻辑运算操作。一台计算机支持(或称使用)的全部指令构成该机的指令系统。指令系统直接与计算机系统的性能和硬件结构的复杂程度等密切相关,它是设计一台计算机的起始点和基本依据。,指令系统是表征一台计算机性能的重要因素,它的格式与功能

2、不仅直接影响到机器的硬件结构,而且也直接影响到系统软件,影响到机器的适用范围。早期的计算机,从简化计算机硬件结构和降低成本考虑,指令系统都比较简单,所支持的指令系统只有定点加减、逻辑运算、数据传送、转移等十几至几十条指令。条数少和运算功能弱,能处理的数据只是定点小数,使用非常困难。到了20世纪7080年代,随着集成电路和超大规模集成电路的出现与发展,计算机硬件成本直线下降;相应的软件成本所占比例迅速增加,计算机的指令系统日渐变得更加复杂和完备,指令条数多达三五百条,寻址方式也趋于多样化,能直接处理的数据类型更多,构成了复杂指令系统计算机(CISC)。,要确定一台计算机的指令系统并评价其优劣,通

3、常应从如下四个方面考虑:指令系统的完备性,常用指令齐全,编程方便;完备性是指用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现。完备性要求指令系统丰富、功能齐全、使用方便。一台计算机中最基本、必不可少的指令是不多的。许多指令可用最基本的指令编程来实现。一般来说,一个功能更强、更完善的指令系统,必定有更好的有效性。指令系统的规整性,指令和数据使用规则统一简单,易学易记;规整性包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。对称性是指:在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式;,匀齐性是指:一种操作性质的指令可以支持各种数

4、据类型,如算术运算指令可支持字节、字、双字整数的运算,十进制数运算和单、双精度浮点数运算等;指令格式和数据格式的一致性是指,指令长度和数据长度有一定的关系,以方便处理和存取。系列机各机种之间具有相同的基本结构和共同的基本指令集,因而指令系统是兼容的,即各机种上基本软件可以通用。但由于不同机种推出的时间不同,在结构和性能上有差异,做到所有软件都完全兼容是不可能的,只能做到“向上兼容”,即低档机上运行的软件可以在高档机上运行。同时要完全满足上述标准是困难的,但它可以指导设计出更加合理的指令系统。通常情况下,一条指令要由两部分组成:,第一部分: 是指令的操作码。操作码用于指明本条指令的操作功能。例如

5、,是算术加运算、减运算还是逻辑与、或运算功能,是否读、写内存或读、写外设操作功能,是否程序转移和子程序调用或返回操作功能等,计算机需要为每条指令分配一个确定的操作码。 第二部分: 是指令的操作数地址,用于给出被操作的信息(指令或数据)的地址,包括参加运算的一或多个操作数所在的地址,运算结果的保存地址,程序的转移地址、被调用的子程序的入口地址等。 在一条指令中,如何分配这两部分所占的位数(长度),如何安排操作数的个数,如何表示和使用一个操作数的地址(寻址方式),是要认真对待、精心设计的重要问题。,机器指令是用机器字来表示的。表示一条指令的机器字,就称为指令字,通常简称指令。指令格式,则是指令字用

6、二进制代码表示的结构形式,通常由操作码字段和地址码字段组成。操作码字段表征指令的操作特性与功能,而地址码字段通常指定参与操作的操作数的地址。因此,一条指令的结构可用如下形式来表示:,32 指令格式,321 操作码 设计计算机时,对指令系统的每一条指令都要规定一个操作码。指令的操作码表示该指令应进行什么性质的操作,如进行加法、减法、乘法、除法、取数、存数等等。不同的指令用操作码字段的不同编码来表示,每一种编码代表一种指令。例如,操作码001可以规定为加法操作;操作码010可以规定为减法操作;而操作码110可以规定为取数操作等等。CPU中的专门电路用来解释每个操作码,因此机器就能执行操作码所表示的

7、操作。 组成操作码字段的位数一般取决于计算机指令系统的规模。较大的指令系统就需要更多的位数来表示每条特定的指令。例如,一个指令系统只有8条指令,则有3位操作码就够了(28)。如果有32条指令,那么就需要5位操作码(232)。一般来说,一个包含n位的操作码最多能够表示2条指令。,对于一个机器的指令系统,在指令字中操作码字段和地址字码段长度通常是固定的。在单片机中,由于指令字较短,为了充分利用指令字长度,指令字的操作码字段和地址码字段是不固定的,即不同类型的指令有不同的划分,以便尽可能用较短的指令字长来表示越来越多的操作种类,并在越来越大的存储空间中寻址。 322 地址码 根据一条指令中有几个操作

8、数地址,可将该指令称为几操作数指令或几地址指令。一般的操作数有被操作数、操作数及操作结果这三种数,因而就形成了三地址指令格式,这是早期计算机指令的基本格式。在三地址指令格式的基础上,后来又发展成二地址格式、一地址格式和零地址格式。各种不同操作数的指令格式如下所示:,(1) 零地址指令的指令字中只有操作码,而没有地址码。 例如,停机指令就不需要地址码,因为停机操作不需要操作数。 (2) 一地址指令常称为单操作数指令。 通常,这种指令是以运算器中累加寄存器AC中的数据为被操作数,指令字的地址码字段所指明的数为操作数,操作结果又放回累加寄存器AC中,而累加寄存器中原来的数随即被冲掉,其数学含义为 (

9、AC) OP () AC 式中, OP表示操作性质,如加、减、乘、除等; (AC)表示累加寄存器AC中的数; ()表示内存中地址为的存储单元中的数,或者是运算器中地址为的通用寄存器中的数; 表示把操作(运算)结果传送到指定的地方。,注意:地址码字段指明的是操作数的地址,而不 是操作数本身。 (3) 二地址指令常称为双操作数指令。 它有两个地址码字段1和,分别指明参与操 作的两个数在内存中或运算器中通用寄存器的地址 ,其中地址:兼做存放操作结果的地址。其数学 含义为(1) OP () (4) 三地址指令字中有三个操作数地址1, 和其数学含义为 (1) OP () 式中, 1为被操作数地址,也称源

10、操作数地址; 2为操作数地址,也称终点操作数地址;,3为存放操作结果的地址。 同样,1,2,3,可以是内存中的单元地址,也可以是运算器中通用寄存器的地址。从操作数的物理位置来看,二地址指令格式中,又分为三种类型。第一种是访问内存的指令格式,我们称这类指令为存储器存储器型指令。这种指令操作时都是涉及内存单元,即参与操作的数都放在内存里。从内存某单元中取操作数,操作结果存放至内存另一单元中,因此机器执行这种指令需要多次访问内存。第二种是访问寄存器的指令格式,我们称这类指令为寄存器寄存器型指令。机器执行这类指令过程中,需要多个通用寄存器或个别专用寄存器,从寄存器中取操作数,把操作结果放到另一寄存器。

11、机器执行寄存器寄存器型指令的速度很快,因为执行这类指令,不需要访问内存。第三种类型为寄存器存储器型指令,执行此类指令时,既要访问内存单元,又要访问寄存器。,323 指令助记符 机器硬件只能识别1和0,所以采用二进制操作码是必要的,但是我们用二进制来书写程序却非常麻烦。为了便于书写和阅读程序,每条指令通常用3个或4个英文缩写字母来表示。这种缩写码叫做指令助记符,如表31所示。这里我们假定指令系统只有6条指令,所以操作码只需3位二进制。,表 常用的指令助记符,由于指令助记符提示了每条指令的意义,因此比较容易记忆,书写起来比较方便,阅读程序容易理解。例如,一条加法指令,我们可以用助记符ADD来代表操

12、作码100。而对于一条存储指令,可以用助记符STR表示操作码011。 需要注意的是,在不同的计算机中,指令助记符的规定是不一样的。 我们知道,硬件只能识别二进制语言。因此,指令助记符还必须转换成与它们相对应的二进制操作码。这种变换借助低级语言可以完成。,324 指令长度 指令字中包含二进制代码的位数,称为指令字长度。而机器字长是指计算机能直接处理的二进制数据的位数,它决定了计算机的运算精度。机器字长通常与主存单元的位数一致。指令字长度等于机器字长度的指令,称为单字长指令;指令字长度等于半个机器字长度的指令,称为半字长指令;指令字长度等于两个机器字长度的指令,称为双字长指令。例如,IBM370系

13、列,它的指令格式有16位(半字)的,有32位(单字)的,还有48位(一个半字)的。在Pentium系列机中,指令格式也是可变的:有8位、16位、32位、64位不等用多字长指令的目的,在于提供足够的地址位来解决访问内存任何单元的寻址问题。,但是使用多字长指令的一个主要缺点是必须两次或多次访问内存以取出一条完整指令,这就降低了CPU的运算速度,同时又占用了更多的存储空间。在一个指令系统中,如果各种指令字长度是相等的,称为等长指令字结构,它们可以都是单字长指令或半字长指令。这种指令字结构简单,且指令字长度是不变的。如果各种指令字长度随指令功能而异,比如有的指令是单字长指令,有的指令是双字长指令,就称

14、为变长指令字结构。这种指令字结构灵活,能充分利用指令长度,但指令的控制比较复杂些。,【例1】指令格式如下:,解:操作码字段为位,有 个操作。 二字长二地址指令,访问存储器。 源寄存器中操作数共个,变址寄存器和 位移量决定另外一个操作数,是寄存器存 储器型指令。,33 操作数寻址 形成操作数的有效地址的方法,称为操作数的 寻址方式。 例如一种单地址指令的结构如下所示,其中用 变址、间址、形式地址各字段组成该指令的操 作数地址。,33 寻址方式,指令中操作数字段的地址码是由形式地址和寻址方式特征位等组合形成,因此,一般来说,指令中所给出的地址码,并不是操作数的有效地址。 形式地址,也称偏移量,它是

15、指令字结构中给定的地址量。寻址方式特征位,此处由间址位和变址位组成。如果这条指令无间址和变址的要求,那么形式地址就是操作数的有效地址。如果指令中指明要变址或间址变换,那么形式地址就不是操作数的有效地址,而要经过指定方式的变换,才能形成有效地址。因此,寻址过程就是把操作数的形式地址,变换为操作数的有效地址的过程。 单片机、微型机、小型机和大型机结构不同,从而形成了各种不同的操作数寻址方式。下面介绍一些比较常用的寻址方式。,1隐含寻址 这种类型的指令,不是明显地给出操作数的地址,而是在指令中隐含着操作数的地址。指令格式明显指出的仅是第一操作数的地址D。因此,累加寄存器AC对单地址指令格式来说是隐含

16、地址。 立即寻址 指令的地址字段指出的不是操作数的地址,而是操作数本身,这种寻址方式称为立即寻址。立即寻址方式的特点是指令执行时间很短,因为它不需要访问内存取数,从而节省了访问内存的时间。例:单地址的移位指令格式是,这里,D不表示地址,而是一个操作数。F为标志位,当F1时,操作数进行右移;当F时,操作数进行左移。 直接寻址 直接寻址是一种基本的寻址方法,其特点是:在指令格式的地址字段中直接指出操作数在内存的地址D。由于操作数的地址直接给出而不需要经过某种变换,所以称这种寻址方式为直接寻址方式。图(a)是直接寻址方式的示意图。 采用直接寻址方式时,指令字中的形式地址D就是操作数的有效地址E,即ED。因此通常把形式地址D又称为直接地址。此时,由寻址模式给予指示,例如X1。如果用S表示操作数,那么直接寻址的逻辑表达式为 (E)(D),4间接寻址 间接寻址是相对于直接寻址而

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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