计算机组成原理_4 指令系统.ppt

上传人:qwe****56 文档编号:70278183 上传时间:2023-01-18 格式:PPT 页数:71 大小:296.50KB
返回 下载 相关 举报
计算机组成原理_4 指令系统.ppt_第1页
第1页 / 共71页
计算机组成原理_4 指令系统.ppt_第2页
第2页 / 共71页
点击查看更多>>
资源描述

《计算机组成原理_4 指令系统.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理_4 指令系统.ppt(71页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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,可,可见多字长的指令格式不利于提高机器速度。见多字长的指令格式不利于提高机器速度。单字长指令单字长指令双字长指令双字长指令三字长指令三字长指令 操作码操作码

26、操作数地址操作数地址 操作数地址操作数地址2 操作码操作码操作数地址操作数地址 操作码操作码2.PDP/112.PDP/11系列机指令格式系列机指令格式 PDP/11PDP/11系列机指令字长系列机指令字长1616位,其指令格式如下表。位,其指令格式如下表。从表中看出,在从表中看出,在PDP/11PDP/11中,操作码字段是不固定的,中,操作码字段是不固定的,其长度也是不相同的。这样做可以扩展操作码以其长度也是不相同的。这样做可以扩展操作码以包含较多的指令。但是操作码字段不固定,对控制器的设包含较多的指令。但是操作码字段不固定,对控制器的设计来说必将复杂化。计来说必将复杂化。3.pentium

27、指令格式指令格式pentiumpentium机的指令字长度是可变的:从机的指令字长度是可变的:从1 1字字节到节到1212字节,还可以带前缀,指令格式如下所字节,还可以带前缀,指令格式如下所示。示。指令前缀指令前缀段取代段取代操作数长度取代操作数长度取代 地址长度取代地址长度取代操作码操作码ModReg或操作码或操作码R/M比例比例S变址变址I基址基址B位移量位移量立即数立即数2位3位3位2位3位3位1或20或10或10,1,2,4(字节数)0或10或10或10或1(字节数)4.3指令和数据的寻址方式 存储器即可用来存放数据,又可存放指令。存储器即可用来存放数据,又可存放指令。因此当某个操作数

28、或某条指令存放在某个存储因此当某个操作数或某条指令存放在某个存储单元时,其存储单元的编号就是该操作数或指单元时,其存储单元的编号就是该操作数或指令在存储器中的地址。令在存储器中的地址。在存储器中,操作数或指令字写入或读出在存储器中,操作数或指令字写入或读出的方式,有的方式,有地址指定方式地址指定方式、相联存储方式相联存储方式和和堆堆栈存取方式栈存取方式。几乎所有计算机在内存中都采用。几乎所有计算机在内存中都采用地址指定方式。当采用地址指定方式时,形成地址指定方式。当采用地址指定方式时,形成操作数或指令地址的方式,称为操作数或指令地址的方式,称为寻址方式寻址方式。4.3.1 指令的寻址方式指令的

29、寻址方式 寻址方式分为两类,寻址方式分为两类,顺序寻址方式顺序寻址方式 (1)指令寻址方式指令寻址方式 跳跃寻址方式跳跃寻址方式 (2)数据寻址方式:数据寻址方式:1.顺序寻址方式顺序寻址方式指令地址在内存中按顺序安排,当执行一段指令地址在内存中按顺序安排,当执行一段程序时,通常是一条指令接一条指令的顺序执行程序时,通常是一条指令接一条指令的顺序执行.从存储器取出第一条指令,然后执行这条指从存储器取出第一条指令,然后执行这条指令;接着从存储器取出第二条指令,在执行第二令;接着从存储器取出第二条指令,在执行第二条指令;接着再取出第三条指令条指令;接着再取出第三条指令这种程序顺这种程序顺序执行的过

30、程,我们称为指令的顺序寻址方式。序执行的过程,我们称为指令的顺序寻址方式。为此,必须使用程序计数器(又称指令指针为此,必须使用程序计数器(又称指令指针寄存器)寄存器)PCPC来计数指令的顺序号,该顺序号就是来计数指令的顺序号,该顺序号就是指令在内存中的地址指令在内存中的地址图4.2指令的寻址方式2.跳跃寻址方式跳跃寻址方式当程序转移执行的顺序时,指令的寻址就采当程序转移执行的顺序时,指令的寻址就采取跳跃寻址方式。所谓跳跃,是指下条指令的地取跳跃寻址方式。所谓跳跃,是指下条指令的地址码不是由程序计数器给出,而是由本条指令给址码不是由程序计数器给出,而是由本条指令给出。程序跳跃后,按新的指令地址开

31、始顺序执行。出。程序跳跃后,按新的指令地址开始顺序执行。程序计数器的内容也必须相应改变,以便及时跟程序计数器的内容也必须相应改变,以便及时跟踪新的指令地址。采用指令跳跃寻址方式,可以踪新的指令地址。采用指令跳跃寻址方式,可以实现程序转移或构成循环程序,从而能缩短程序实现程序转移或构成循环程序,从而能缩短程序长度,或将某些程序作为公共程序引用。指令系长度,或将某些程序作为公共程序引用。指令系统中的各种条件转移或无条件转移指令,就是为统中的各种条件转移或无条件转移指令,就是为了实现指令的跳跃寻址而设置的。了实现指令的跳跃寻址而设置的。图4.2指令的寻址方式4.3.2 操作数寻址方式操作数寻址方式

32、形成操作数的有效地址的方法,称为操作形成操作数的有效地址的方法,称为操作数的寻址方式。数的寻址方式。例如,一种单地址指令的结构如下所示:例如,一种单地址指令的结构如下所示:指令中操作数字段的地址码是由指令中操作数字段的地址码是由形式地址形式地址和和寻址方式特征位寻址方式特征位等组合形成,因此,一般来说,等组合形成,因此,一般来说,指令中所给出的地址码,并不是操作数的有效地指令中所给出的地址码,并不是操作数的有效地址。址。因此,寻址过程就是把操作数的形式地址,因此,寻址过程就是把操作数的形式地址,变换为操作数的有效地址的过程。变换为操作数的有效地址的过程。由于不同机型的内部结构不同,从而形成了由

33、于不同机型的内部结构不同,从而形成了各种不同的操作数寻址方式,比较典型且常用的各种不同的操作数寻址方式,比较典型且常用的寻址方式如下:寻址方式如下:1.隐含寻址方式隐含寻址方式 2.立即寻址方式立即寻址方式 3.直接寻址方式直接寻址方式 4.间接寻址方式间接寻址方式 5.寄存器寻址方式和寄存器间接寻址方式寄存器寻址方式和寄存器间接寻址方式 6.相对寻址方式相对寻址方式 7.基址寻址方式基址寻址方式 8.变址寻址方式变址寻址方式 9.块寻址方式块寻址方式 10.段寻址方式段寻址方式1.隐含寻址隐含寻址 在指令中不明显地给出而是隐含着操作在指令中不明显地给出而是隐含着操作数的地址。例如,单地址的指

34、令格式,没有数的地址。例如,单地址的指令格式,没有在地址字段中指明第二操作数地址,而是规在地址字段中指明第二操作数地址,而是规定累加寄存器定累加寄存器ACAC作为第二操作数地址,作为第二操作数地址,ACAC对对单地址指令格式来说是隐含地址。单地址指令格式来说是隐含地址。2.立即寻址立即寻址 指令的地址字段指出的不是操作数的地址,指令的地址字段指出的不是操作数的地址,而是操作数本身。这种方式的特点是指令执行而是操作数本身。这种方式的特点是指令执行时间很短,不需要访问内存取数。时间很短,不需要访问内存取数。3.直接寻址直接寻址直接寻址特点是:在指令格式的地址字直接寻址特点是:在指令格式的地址字段中

35、直接指出操作数在内存的地址段中直接指出操作数在内存的地址D D。下图是下图是直接寻址方式的示意图。直接寻址方式的示意图。采用直接寻址方式时,指令字中的形式采用直接寻址方式时,指令字中的形式地址地址D D就是操作数的有效地址就是操作数的有效地址E E,既,既E ED D。因因此通常把形式地址此通常把形式地址D D又称为直接地址。此时,又称为直接地址。此时,由寻址模式给予指示。由寻址模式给予指示。如果用如果用S S表示操作数,表示操作数,那么直接寻址的逻辑表达式为那么直接寻址的逻辑表达式为 S S(E E)()(D D)4.间接寻址间接寻址间接寻址的情况下,指令地址字段中的形间接寻址的情况下,指令

36、地址字段中的形式地址式地址D D不是操作数的真正地址,而是操作数不是操作数的真正地址,而是操作数地址的指示器,地址的指示器,D D单元的内容才是操作数的有单元的内容才是操作数的有效地址。下图是间接寻址方式的示意图。效地址。下图是间接寻址方式的示意图。如果把直接寻址和间接寻址结合起来,指如果把直接寻址和间接寻址结合起来,指令有如下形式:令有如下形式:寻址特征位寻址特征位I I0 0,表示直接寻址,这时有表示直接寻址,这时有效地址效地址E ED D;I I1 1,表示间接寻址,这时有表示间接寻址,这时有效地址效地址E E(D D)。)。操作码操作码 I D5.寄存器寻址方式和寄存器间接寻址方式寄存

37、器寻址方式和寄存器间接寻址方式当操作数不放在内存中,而是放在当操作数不放在内存中,而是放在CPUCPU的的通用寄存器中时,可采用寄存器寻址方式。通用寄存器中时,可采用寄存器寻址方式。此时指令中给出的操作数地址不是内存的地此时指令中给出的操作数地址不是内存的地址单元号,而是通用寄存器的编号。址单元号,而是通用寄存器的编号。寄存器间接寻址方式与寄存器寻址方式寄存器间接寻址方式与寄存器寻址方式的区别在于:指令格式中的寄存器内容不是的区别在于:指令格式中的寄存器内容不是操作数,而是操作数的地址,该地址指明的操作数,而是操作数的地址,该地址指明的操作数在内存中。操作数在内存中。6.相对寻址方式相对寻址方

38、式相对寻址是把程序计数器相对寻址是把程序计数器PCPC的内容加上的内容加上指令格式中的形式地址指令格式中的形式地址D D而形成操作数的有效而形成操作数的有效地址。程序计数器的内容就是当前指令的地地址。程序计数器的内容就是当前指令的地址。址。“相对相对”寻址,就是相对于当前的指令寻址,就是相对于当前的指令地址而言。下图是相对寻址方式的示意图。地址而言。下图是相对寻址方式的示意图。采用相对寻址方式的好处是程序员无须采用相对寻址方式的好处是程序员无须用指令的绝对地址编程,所编程序可以放在用指令的绝对地址编程,所编程序可以放在内存任何地方。内存任何地方。此时形式地址此时形式地址D D通常称为偏移量,其

39、值可通常称为偏移量,其值可正可负,相对于当前指令地址进行浮动。正可负,相对于当前指令地址进行浮动。7.基址寻址方式基址寻址方式 基址寻址方式是将基址寻址方式是将CPUCPU中基址寄存器的内中基址寄存器的内容加上指令格式中的形式地址而形成操作数容加上指令格式中的形式地址而形成操作数的有效地址。下图是基址寻址方式的示意图。的有效地址。下图是基址寻址方式的示意图。它的优点是可以扩大寻址能力。同形式它的优点是可以扩大寻址能力。同形式地址相比,基址寄存器的位数可以设置得很地址相比,基址寄存器的位数可以设置得很长,从而可以在较大的存储空间中寻址。长,从而可以在较大的存储空间中寻址。8.变址寻址方式变址寻址

40、方式变址寻址方式与基址寻址方式计算有效变址寻址方式与基址寻址方式计算有效地址的方法很相似,它把地址的方法很相似,它把CPUCPU中某个变址寄中某个变址寄存器的内容与偏移量存器的内容与偏移量D D相加来形成操作数有相加来形成操作数有效地址。效地址。但使用变址寻址方式的目的不在但使用变址寻址方式的目的不在于扩大寻址空间,而在于实现程序块的规律于扩大寻址空间,而在于实现程序块的规律性变化。性变化。9.块寻址方式块寻址方式 块寻址方式常用在输入输出指令中,以实现块寻址方式常用在输入输出指令中,以实现外存或外围设备同内存之间的数据块传送。块寻外存或外围设备同内存之间的数据块传送。块寻址方式在内存中还可用

41、于数据块搬家。址方式在内存中还可用于数据块搬家。块寻址时,块寻址时,通常在指令中指出数据块的起始地址通常在指令中指出数据块的起始地址 (首地址首地址)和数据块的长度和数据块的长度 (字数或字节数字数或字节数)。如果数据块是变长的,可用三种方法指出它如果数据块是变长的,可用三种方法指出它的长度:的长度:(1)(1)指令中划出字段指出长度;指令中划出字段指出长度;(2)(2)指令格式中指出数据块的首地址与末地址;指令格式中指出数据块的首地址与末地址;(3)(3)由块结束字符指出数据块长度。由块结束字符指出数据块长度。操作码操作码 首地址首地址 标志位标志位 末地址末地址10.段寻址方式段寻址方式微

42、机中采用了段寻址方式,例如它们可以给微机中采用了段寻址方式,例如它们可以给定一个定一个2020位的地址,从而有位的地址,从而有1M1M存储空间的直接寻存储空间的直接寻址能力。为此将整个址能力。为此将整个1M1M空间存储器以空间存储器以64K64K为单位划为单位划分成若干段。在寻址一个内存具体单元时,由一分成若干段。在寻址一个内存具体单元时,由一个基地址再加上某些寄存器提供的个基地址再加上某些寄存器提供的1616位偏移量来位偏移量来形成实际的形成实际的2020位物理地址。这个基地址就是位物理地址。这个基地址就是CPUCPU中中的段寄存器。在形成的段寄存器。在形成2020位物理地址时,段寄存器位物

43、理地址时,段寄存器中的中的1616位数会自动左移位数会自动左移4 4位,然后以位,然后以1616位偏移量相位偏移量相加,即可形成所需的内存地址。加,即可形成所需的内存地址。这种寻址方式的实质还是基址寻址如图。这种寻址方式的实质还是基址寻址如图。4.3.3 寻址方式举例寻址方式举例例例3 一种二地址一种二地址RS型指令的结构如下所示:型指令的结构如下所示:6位位 4位位 1位位 2位位 16位位 OP-通用寄存器通用寄存器 I X 偏移量偏移量D 其中其中I为间接寻址标志位,为间接寻址标志位,X为寻址模式字段,为寻址模式字段,D位偏移量字段。通过位偏移量字段。通过I,X,D的组合,可构成下表所的

44、组合,可构成下表所示的寻址方式。示的寻址方式。请写出六种寻址方式的名称。请写出六种寻址方式的名称。寻址方式寻址方式 (1)(2)(3)(4)(5)(6)I 0 0 0 1 1 0 X 00 01 10 11 00 11 有效地址有效地址E算法算法E=DE=(PC)+DE=(R2)+DE=(R3)E=(D)E=(R1)+D说明说明 PC为程序计数器为程序计数器 R2为变址寄存器为变址寄存器 R1为基址寄存器为基址寄存器解解:直接寻址直接寻址 相对寻址相对寻址 变址寻址变址寻址 寄存器间接寻址寄存器间接寻址 间接寻址间接寻址 基址寻址基址寻址 4.4 堆栈寻址方式堆栈是一组能存储和取出数据的暂时存

45、堆栈是一组能存储和取出数据的暂时存储单元。很多计算机把存储器的一部分用作储单元。很多计算机把存储器的一部分用作堆栈。堆栈。堆栈和其他形式的存储器之间的差别就堆栈和其他形式的存储器之间的差别就在于,它们对数据的存取方法或寻址方法有在于,它们对数据的存取方法或寻址方法有所不同。所不同。计算机中常用的两种堆栈结构:计算机中常用的两种堆栈结构:1.串联堆栈串联堆栈(寄存器堆栈寄存器堆栈)2.存储器堆栈存储器堆栈4.4.1 串联堆栈串联堆栈 一些计算机的一些计算机的CPU中有一组专门的寄存中有一组专门的寄存器,有器,有16个或更多,它们称为个或更多,它们称为串联堆栈串联堆栈,其,其中每一个寄存器能保存一

46、个字的数据。假如中每一个寄存器能保存一个字的数据。假如由于某种原因,我们需要空出某个通用寄存由于某种原因,我们需要空出某个通用寄存器时,就可将某个通用寄存器内容存入堆栈。器时,就可将某个通用寄存器内容存入堆栈。以后若需要这部分数据时,又可以从堆栈中以后若需要这部分数据时,又可以从堆栈中取回来。取回来。下图是串联堆栈的入栈和出栈过程。下图是串联堆栈的入栈和出栈过程。从上面的图示中可以看出:所有的数据从上面的图示中可以看出:所有的数据传送是在栈顶和某个通用寄存器之间进行的,传送是在栈顶和某个通用寄存器之间进行的,通用寄存器仅和堆栈的顶部单元相联系。通常,通用寄存器仅和堆栈的顶部单元相联系。通常,C

47、PUCPU通过通过“进栈进栈”指令把数据送入堆栈,而通指令把数据送入堆栈,而通过过“出栈出栈”指令把数据从堆栈中取出。这种结指令把数据从堆栈中取出。这种结构通常称作构通常称作“下压堆栈下压堆栈”或或“串联堆栈串联堆栈”。串。串联堆栈这个名字反映了每当一个新数被压进栈联堆栈这个名字反映了每当一个新数被压进栈顶时,数据串联的向下通过堆栈的特性。出栈顶时,数据串联的向下通过堆栈的特性。出栈时,最后进入栈的数首先从栈中取出。因此这时,最后进入栈的数首先从栈中取出。因此这种结构通常又称为种结构通常又称为“后进先出后进先出”堆栈。堆栈。4.4.2 存储器堆栈存储器堆栈串联堆栈存在一些限制串联堆栈存在一些限

48、制:(1)(1)寄存器的数目一般是有限的。如堆寄存器的数目一般是有限的。如堆栈有栈有8 8个寄存器,那么把多于个寄存器,那么把多于8 8个的数据压入个的数据压入堆栈时堆栈时,“,“老老”的数据就从栈底压出并被丢失。的数据就从栈底压出并被丢失。(2)(2)堆栈的读出是破坏性的。当从堆栈堆栈的读出是破坏性的。当从堆栈取出一个数时,它就不能再在堆栈中存在。取出一个数时,它就不能再在堆栈中存在。由于有这些限制,通常由程序员设置出由于有这些限制,通常由程序员设置出一部分主存储器来作为堆栈,称为一部分主存储器来作为堆栈,称为存储器堆存储器堆栈栈。存储器堆栈存储器堆栈有三个优点:有三个优点:堆栈能够具有程序

49、员要求的任意长度;堆栈能够具有程序员要求的任意长度;可以根据程序员喜好建立多个堆栈;可以根据程序员喜好建立多个堆栈;可以用对存储器寻址的任何一条指令来可以用对存储器寻址的任何一条指令来对堆栈中的数据进行寻址。对堆栈中的数据进行寻址。在存储器类型的堆栈中,需要一个堆栈在存储器类型的堆栈中,需要一个堆栈指示器,它是指示器,它是CPUCPU中一个专用的寄存器。堆栈中一个专用的寄存器。堆栈指示器指定的存储器单元,就是堆栈的栈顶指示器指定的存储器单元,就是堆栈的栈顶.在设计计算机系统时,把主存储器的一部分在设计计算机系统时,把主存储器的一部分用作堆栈区。一旦设定堆栈区后,这一部分用作堆栈区。一旦设定堆栈

50、区后,这一部分就不能用作其他用途。就不能用作其他用途。当建立存储器堆栈时,可用程序来设置。把当建立存储器堆栈时,可用程序来设置。把一个主存地址送入堆栈指示器,就可确定堆栈的一个主存地址送入堆栈指示器,就可确定堆栈的顶。在存储器堆栈中,数据的压入或取出操作,顶。在存储器堆栈中,数据的压入或取出操作,通常也是使用通常也是使用“进栈进栈”指令和指令和“出栈出栈”指令来实指令来实现的,但是指令的功能和串联堆栈中的情况有所现的,但是指令的功能和串联堆栈中的情况有所不同。不同。进栈操作可描述如下:进栈操作可描述如下:(A A)Msp Msp,(,(SPSP)1SP 1SP 其中(其中(A A)表示通用寄存

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

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁