计算机组成原理_4 指令系统.ppt
《计算机组成原理_4 指令系统.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理_4 指令系统.ppt(71页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章 指令系统4.1 指令系统的发展与性能要求4.2 指令格式4.3 指令和数据的寻址方式4.4 堆栈寻址方式4.5 典型指令4.1指令系统的发展与性能要求4.1.1 指令系统的发展指令系统的发展 计算机的程序是由一系列的指令组成的。计算机的程序是由一系列的指令组成的。指令就是要计算机执行某种操作的命令指令就是要计算机执行某种操作的命令。从计算。从计算机组成的层次结构来说,计算机的指令有机组成的层次结构来说,计算机的指令有微指令微指令、机器指令机器指令和和宏指令宏指令之分。之分。微指令:微指令:包含若干微命令,属于硬件;包含若干微命令,属于硬件;机器指令(指令):机器指令(指令):每条指令可
2、完成一个独立的每条指令可完成一个独立的算术运算或逻辑运算,属于硬件和软件的接口;算术运算或逻辑运算,属于硬件和软件的接口;宏指令:宏指令:由若干条机器指令组成的软件指令,属由若干条机器指令组成的软件指令,属于软件于软件。指令系统:指令系统:一台计算机中所有机器指令的集一台计算机中所有机器指令的集合,它是表征一台计算机性能的重要因素,合,它是表征一台计算机性能的重要因素,其格式与功能不仅直接影响到机器的硬件结其格式与功能不仅直接影响到机器的硬件结构,也直接影响到系统软件,影响到机器的构,也直接影响到系统软件,影响到机器的适用范围。适用范围。下面我们来看一下计算机指令系统的发展下面我们来看一下计算
3、机指令系统的发展过程。过程。5050年代年代 :指令系统只有定点加减、逻辑运算、:指令系统只有定点加减、逻辑运算、数据传送、转移等十几至几十条指令。数据传送、转移等十几至几十条指令。6060年代后期年代后期 :增加了乘除运算、浮点运算、:增加了乘除运算、浮点运算、十进制运算、字符串处理等指令,指令数目十进制运算、字符串处理等指令,指令数目多达一二百条,寻址方式也趋多样化。多达一二百条,寻址方式也趋多样化。6060年代后期开始出现年代后期开始出现系列计算机系列计算机(指基本指基本指令系统相同、基本体系结构相同的一系列指令系统相同、基本体系结构相同的一系列计算机计算机)一个系列往往有多种型号,它们
4、在结一个系列往往有多种型号,它们在结构和性能上有所差异。同一系列的各机种有构和性能上有所差异。同一系列的各机种有共同的指令集而且新推出的机种指令系统一共同的指令集而且新推出的机种指令系统一定包含所有旧机种的全部指令定包含所有旧机种的全部指令,旧机种上运行旧机种上运行的各种软件可以不加任何修改便可在新机种的各种软件可以不加任何修改便可在新机种上运行,大大减少了软件开发费用。上运行,大大减少了软件开发费用。7070年代末期年代末期 :大多数计算机的指令系统多大多数计算机的指令系统多达几百条。我们称这些计算机为达几百条。我们称这些计算机为复杂指令系复杂指令系统计算机统计算机(CISC)(CISC)。
5、但是如此庞大的指令系统但是如此庞大的指令系统难以保证正确性,不易调试维护,造成硬件难以保证正确性,不易调试维护,造成硬件资源浪费。为此人们又提出了便于资源浪费。为此人们又提出了便于VLSIVLSI技术技术实现的实现的精简指令系统计算机(精简指令系统计算机(RISCRISC)。4.1.2 对指令系统性能的要求对指令系统性能的要求指令系统的性能决定了计算机的基本功能,指令系统的性能决定了计算机的基本功能,它的设计直接关系到计算机的硬件结构和用户的它的设计直接关系到计算机的硬件结构和用户的需要。一个完善的指令系统应满足如下四方面的需要。一个完善的指令系统应满足如下四方面的要求:要求:完备性完备性用汇
6、编语言编写各种程序时,指令系统用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现。直接提供的指令足够使用,而不必用软件来实现。完备性要求指令系统丰富、功能齐全、使用方便。完备性要求指令系统丰富、功能齐全、使用方便。有效性有效性利用该指令系统编写的程序能够高效率利用该指令系统编写的程序能够高效率地运行。高效率主要表现在程序占据存储空间小、地运行。高效率主要表现在程序占据存储空间小、执行速度快。一般来说,一个功能更强、更完善执行速度快。一般来说,一个功能更强、更完善的指令系统,必定有更好的有效性。的指令系统,必定有更好的有效性。规整性规整性规整性包括指令系统的规整性包括指
7、令系统的对称性对称性、匀齐匀齐性性、指令格式指令格式和和数据格式的一致性数据格式的一致性。对称性对称性指在指令系统中所有的寄存器和存指在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用储器单元都可同等对待,所有的指令都可使用各种寻址方式;各种寻址方式;匀齐性匀齐性是指一种操作性质的指令可以支持是指一种操作性质的指令可以支持各种数据类型;各种数据类型;指令格式指令格式和和数据格式的一致性数据格式的一致性是指指令长是指指令长度和数据长度有一定的关系,以方便处理和存度和数据长度有一定的关系,以方便处理和存取。取。兼容性兼容性系列机各机种之间具有相同的基本系列机各机种之间具有相同的基
8、本结构和共同的基本指令集,因而指令系统是结构和共同的基本指令集,因而指令系统是兼容的,即各机种上基本软件可以通用。但兼容的,即各机种上基本软件可以通用。但由于不同机种推出的时间不同,在结构和性由于不同机种推出的时间不同,在结构和性能上有差异,做到所有软件都完全兼容是不能上有差异,做到所有软件都完全兼容是不可能的,只能做到可能的,只能做到“向上兼容向上兼容”,即低档机,即低档机上运行的软件可以在高档机上运行。上运行的软件可以在高档机上运行。4.1.3 低级语言与硬件结构的关系低级语言与硬件结构的关系 计算机语言分为高级语言和低级语言。计算机语言分为高级语言和低级语言。高级语言高级语言如如C C,
9、FORTRANFORTRAN等,其语句和用等,其语句和用法与具体机器的指令系统无关。法与具体机器的指令系统无关。低级语言低级语言分分机器语言机器语言(二进制语言)和(二进制语言)和汇编语言汇编语言(符号语言),这两种语言都是面(符号语言),这两种语言都是面向机器的语言,和具体机器的指令系统密切向机器的语言,和具体机器的指令系统密切相关。机器语言用指令代码编写程序,而符相关。机器语言用指令代码编写程序,而符号语言用指令助记符来编写程序。号语言用指令助记符来编写程序。下表列出了高级语言与低级语言的性能下表列出了高级语言与低级语言的性能比较。比较。1 2 3 4 5 6比较内容比较内容对程序员的训练
10、要求对程序员的训练要求(1)通用算法通用算法(2)语言规则语言规则(3)硬件知识硬件知识对机器独立的程度对机器独立的程度编制程序的难易程度编制程序的难易程度编制程序所需时间编制程序所需时间程序执行时间程序执行时间编译过程中对计算机资源的要求编译过程中对计算机资源的要求高级语言高级语言有有较少较少不要不要独立独立易易短短较长较长多多低级语言低级语言有有较多较多要要不独立不独立难难较长较长短短少少表4.1高级语言与低级语言的性能比较 计算机能够直接识别和执行的唯一语计算机能够直接识别和执行的唯一语言是二进制语言,但用其来编写程序却很不言是二进制语言,但用其来编写程序却很不方便。人们通常采用符号语言
11、或高级语言编方便。人们通常采用符号语言或高级语言编写程序,但计算机却不能识别。为此,必须写程序,但计算机却不能识别。为此,必须借助汇编程序或编译程序,把符号语言或高借助汇编程序或编译程序,把符号语言或高级语言翻译成二进制码组成的机器语言。级语言翻译成二进制码组成的机器语言。汇编语言依赖于计算机的硬件结构和指汇编语言依赖于计算机的硬件结构和指令系统。不同的机器有不同的指令,所以用令系统。不同的机器有不同的指令,所以用汇编语言编写的程序不能在其他类型的机器汇编语言编写的程序不能在其他类型的机器上运行。上运行。高级语言与计算机的硬件结构及指令系高级语言与计算机的硬件结构及指令系统无关,在编写程序方面
12、比汇编语言优越。统无关,在编写程序方面比汇编语言优越。但是高级语言程序但是高级语言程序“看不见看不见”机器的硬件结机器的硬件结构,不能用于编写直接访问机器硬件资源的构,不能用于编写直接访问机器硬件资源的系统软件或设备控制软件。为此,一些高级系统软件或设备控制软件。为此,一些高级语言提供了与汇编语言之间的调用接口。用语言提供了与汇编语言之间的调用接口。用汇编语言编写的程序,可作为高级语言的一汇编语言编写的程序,可作为高级语言的一个外部过程或函数,利用堆栈来传递参数或个外部过程或函数,利用堆栈来传递参数或参数的地址。参数的地址。4.2指令格式 4.2.1 操作码操作码 指令字指令字 (简称指令简称
13、指令)即表示一条指令的机器字。即表示一条指令的机器字。指令格式指令格式则是指令字用二进制代码表示的结构形则是指令字用二进制代码表示的结构形式,由式,由操作码操作码字段和字段和地址码地址码字段组成。字段组成。操作码字段表征指令的操作特性与功能;地址码字操作码字段表征指令的操作特性与功能;地址码字段通常指定参与操作的操作数的地址。段通常指定参与操作的操作数的地址。指令系统的每一条指令都有一个操作码,它表示指令系统的每一条指令都有一个操作码,它表示该指令应进行什么性质的操作。该指令应进行什么性质的操作。不同的指令用操作码字段的不同编码来表示,每不同的指令用操作码字段的不同编码来表示,每一种编码代表一
14、种指令。一种编码代表一种指令。操作码字段操作码字段 地址码字段地址码字段 组成操作码字段的位数一般取决于计算机指组成操作码字段的位数一般取决于计算机指令系统的规模。例如,一个指令系统只有令系统的规模。例如,一个指令系统只有8 8条指令,条指令,则有则有3 3位操作码就够;如果有位操作码就够;如果有3232条指令,那么就需条指令,那么就需要要5 5位操作码。位操作码。对于一个机器的指令系统,在指令字中操作对于一个机器的指令系统,在指令字中操作码字段和地址码字段长度通常是固定的。码字段和地址码字段长度通常是固定的。在单片机中,由于指令字较短,为了充分利在单片机中,由于指令字较短,为了充分利用指令字
15、长度,指令字的操作码字段和地址码字用指令字长度,指令字的操作码字段和地址码字段是不固定的,即不同类型的指令有不同的划分,段是不固定的,即不同类型的指令有不同的划分,以便尽可能用较短的指令字长来表示越来越多的以便尽可能用较短的指令字长来表示越来越多的操作种类,并在越来越大的存储空间中寻址。操作种类,并在越来越大的存储空间中寻址。4.2.2 地址码地址码 根据一条指令中有几个操作数地址,可将该根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令。指令称为几操作数指令或几地址指令。一般的操作数有一般的操作数有被操作数被操作数、操作数操作数及及操作结操作结果果这三种数,因而就形成了三
16、地址指令格式。在这三种数,因而就形成了三地址指令格式。在此基础上,后来又发展成二地址格式、一地址格此基础上,后来又发展成二地址格式、一地址格式和零地址格式式和零地址格式三地址指令三地址指令二地址指令二地址指令一地址指令一地址指令零地址指令零地址指令操作码操作码 1 2 3操作码操作码 1 2操作码操作码 1操作码操作码说明:说明:(1)(1)零地址指令的指令字中只有操作码,而没零地址指令的指令字中只有操作码,而没有地址码。有地址码。(2)(2)一地址指令常称为单操作数指令。通常这一地址指令常称为单操作数指令。通常这种指令以运算器中累加寄存器种指令以运算器中累加寄存器ACAC中的数据为被操中的数
17、据为被操作数,指令字的地址码字段所指明的数为操作数,作数,指令字的地址码字段所指明的数为操作数,操作结果又放回累加寄存器操作结果又放回累加寄存器ACAC中。中。(AC)(AC)OPOP(A)(A)-ACAC OPOP表示操作性质;(表示操作性质;(ACAC)表示累加寄存器表示累加寄存器ACAC中的数;(中的数;(A A)表示内存中地址为表示内存中地址为A A的存储单元中的存储单元中的数或运算器中地址为的数或运算器中地址为A A的通用寄存器中的数;的通用寄存器中的数;表示把操作(运算)结果传送到指定的地方。表示把操作(运算)结果传送到指定的地方。(3)(3)二地址指令常称为双操作数指令,它的两二
18、地址指令常称为双操作数指令,它的两个地址码字段分别指明参与操作的两个数在内存个地址码字段分别指明参与操作的两个数在内存中或运算器中通用寄存器的地址,中或运算器中通用寄存器的地址,A1A1作存放操作作存放操作结果的地址。结果的地址。(A1)(A1)OPOP(A2)(A2)-A1A1 (4)(4)三地址指令字中有三个操作数地址。三地址指令字中有三个操作数地址。(A1)(A1)OPOP(A2)(A2)-A3A3 A1 A1为被操作数地址,也称源操作数地址;为被操作数地址,也称源操作数地址;A2A2为为操作数地址,也称终点操作数地址;操作数地址,也称终点操作数地址;A3A3为存放结为存放结果的地址。果
19、的地址。同样,同样,A1,A2,A3A1,A2,A3可以是内存中的单元可以是内存中的单元地址,也可以是运算器中通用寄存器的地址。地址,也可以是运算器中通用寄存器的地址。二地址指令格式中,从操作数的物理位置来二地址指令格式中,从操作数的物理位置来说,又可归结为三种类型。说,又可归结为三种类型。存储器存储器-存储器存储器 (SS)(SS)型指令型指令:操作时都是涉及内:操作时都是涉及内存单元,参与操作的数都放在内存里,从内存某存单元,参与操作的数都放在内存里,从内存某单元中取操作数,操作结果存放至内存另一单元单元中取操作数,操作结果存放至内存另一单元中,因此机器执行这种指令需要多次访问内存。中,因
20、此机器执行这种指令需要多次访问内存。寄存器寄存器-寄存器寄存器 (RR)(RR)型指令型指令:需要多个通用寄存:需要多个通用寄存器或个别专用寄存器,从寄存器中取操作数,把器或个别专用寄存器,从寄存器中取操作数,把操作结果放到另一寄存器。机器执行寄存器操作结果放到另一寄存器。机器执行寄存器-寄存寄存器型指令的速度很快,因为执行这类指令,不需器型指令的速度很快,因为执行这类指令,不需要访问内存。要访问内存。寄存器寄存器-存储器存储器 (RS)(RS)型指令型指令:执行此类指令时,:执行此类指令时,既要访问内存单元,又要访问寄存器。既要访问内存单元,又要访问寄存器。4.2.3 指令字长度指令字长度
21、指令字长度指令字长度:一个指令字中包含二进制代码的:一个指令字中包含二进制代码的位数。位数。机器字长机器字长:计算机能直接处理的二进制数据的:计算机能直接处理的二进制数据的位数,它决定了计算机的运算精度。位数,它决定了计算机的运算精度。其中其中L L为指令字长度,为指令字长度,N N为机器字长度为机器字长度 使用多字长指令,目的在于提供足够的地使用多字长指令,目的在于提供足够的地址位来解决访问内存任何单元的寻址问题。其主址位来解决访问内存任何单元的寻址问题。其主要缺点是必须两次或多次访问内存以取出一整条要缺点是必须两次或多次访问内存以取出一整条指令,降低了指令,降低了CPUCPU的运算速度,又
22、占用了更多的的运算速度,又占用了更多的存储空间。存储空间。等长指令字结构等长指令字结构 :各种指令字长度是相等的。各种指令字长度是相等的。这种指令字结构简单,且指令字长度是不变的。这种指令字结构简单,且指令字长度是不变的。变长指令字结构变长指令字结构 :各种指令字长度随指令功能各种指令字长度随指令功能而异。结构灵活,能充分利用指令长度,但指令而异。结构灵活,能充分利用指令长度,但指令的控制较复杂。的控制较复杂。4.2.4 指令助记符指令助记符 由于硬件只能识别由于硬件只能识别1 1和和0 0,所以采用二,所以采用二进制操作码是必要的,但是我们用二进制来书写进制操作码是必要的,但是我们用二进制来
23、书写程序却非常麻烦。为了便于书写和阅读程序,每程序却非常麻烦。为了便于书写和阅读程序,每条指令通常用条指令通常用3 3个或个或4 4个英文缩写字母来表示。这个英文缩写字母来表示。这种缩写码叫做种缩写码叫做指令助记符指令助记符。典典 型型 指指 令令指令助记符指令助记符二进制操作码二进制操作码加法加法ADD001减法减法SUB010传送传送MOV011跳转跳转JMP100转子转子JSR101存储存储STR110读数读数LDA111表4.2典型的指令助记符 如上表所示,这里我们假定指令系统只如上表所示,这里我们假定指令系统只有有7 7条指令,所以操作码只需条指令,所以操作码只需3 3位二进制。位二
24、进制。由由于指令助记符提示了每条指令的意义,因此比于指令助记符提示了每条指令的意义,因此比较容易记忆,书写起来比较方便,阅读程序容较容易记忆,书写起来比较方便,阅读程序容易理解。易理解。需要注意的是,在不同的计算机中,指令需要注意的是,在不同的计算机中,指令助记符的规定是不一样的。因此,指令助记符助记符的规定是不一样的。因此,指令助记符还必须转换成与它们相对应的二进制码。这种还必须转换成与它们相对应的二进制码。这种转换借助汇编程序可以自动完成,汇编程序相转换借助汇编程序可以自动完成,汇编程序相当于一个当于一个“翻译翻译”。4.2.5 指令格式举例指令格式举例1.1.八位微型计算机的指令格式八位
25、微型计算机的指令格式 8 8位微型机字长是位微型机字长是8 8位,指令结构是一种可变位,指令结构是一种可变字长形式,包含单字、双字、三字长指令等多种字长形式,包含单字、双字、三字长指令等多种.内存按字节编址,所以单字长指令每执行一内存按字节编址,所以单字长指令每执行一条指令后,指令地址加条指令后,指令地址加1 1。双字长指令或三字长指。双字长指令或三字长指令每执行一条指令时,指令地址要加令每执行一条指令时,指令地址要加2 2或加或加3 3,可,可见多字长的指令格式不利于提高机器速度。见多字长的指令格式不利于提高机器速度。单字长指令单字长指令双字长指令双字长指令三字长指令三字长指令 操作码操作码
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机组成原理_4 指令系统 计算机 组成 原理 _4
限制150内