《计算机组成原理指令系统精选PPT.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理指令系统精选PPT.ppt(68页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、计算机组成原理指令系统第1页,此课件共68页哦4.1 指令系统的发展与性能要求指令系统的发展与性能要求指令在计算机系统中的地位(1)是软件和硬件分界面的一个主要标志n硬件设计人员采用各种手段实现它;n软件设计人员则利用它编制各种各样的系统软件和应用软件(2)是硬件设计人员和软件设计人员之间的分界面,也是他们之间沟通的桥梁。第2页,此课件共68页哦4.1.1指令系统的发展指令系统的发展 1.计算机的程序:计算机的程序:是解决某一实际问题的指令序列;是解决某一实际问题的指令序列;2.指令:指令:就是要计算机执行某种操作的命令。就是要计算机执行某种操作的命令。从计算机组成的层次结构来说,计算机的指令
2、有从计算机组成的层次结构来说,计算机的指令有微指令微指令、机器指令机器指令和和宏宏指令指令之分。之分。微指令:微指令:微程序级的命令,它属于硬件;微程序级的命令,它属于硬件;宏指令:宏指令:由若干条机器指令组成的软件指令,它属于软件;由若干条机器指令组成的软件指令,它属于软件;机器指令(指令):机器指令(指令):介于微指令与宏指令之间,每条指令可完成一个介于微指令与宏指令之间,每条指令可完成一个独立的算术运算或逻辑运算。独立的算术运算或逻辑运算。4.1 指令系统的发展和性能要求指令系统的发展和性能要求第3页,此课件共68页哦3.指令系统:指令系统:一台计算机中所有机器指令一台计算机中所有机器指
3、令的集合,它是表征一台计算机性能的重的集合,它是表征一台计算机性能的重要因素,其格式与功能不仅直接影响到要因素,其格式与功能不仅直接影响到机器的硬件结构也直接影响到系统软件,机器的硬件结构也直接影响到系统软件,影响到机器的适用范围。影响到机器的适用范围。第4页,此课件共68页哦下面我们来看一下计算机指令系统的发展过程下面我们来看一下计算机指令系统的发展过程50年代年代:指令系统只有定点加减、逻辑运算、:指令系统只有定点加减、逻辑运算、数据传送、转移等十几至几十条指令。数据传送、转移等十几至几十条指令。60年代后期年代后期:增加了乘除运算、浮点运算、十:增加了乘除运算、浮点运算、十进制运算、字符
4、串处理等指令,指令数目多达进制运算、字符串处理等指令,指令数目多达一二百条,寻址方式也趋多样化。一二百条,寻址方式也趋多样化。60年代后期开始出现系列计算机年代后期开始出现系列计算机第5页,此课件共68页哦l系列计算机系列计算机是指节本指令系统相同、基本体系结构相同的一系列是指节本指令系统相同、基本体系结构相同的一系列计算机。计算机。其必要条件是同一系列的各机种有共同的指令集而且其必要条件是同一系列的各机种有共同的指令集而且新推出的机种指令系统一定包含所有旧机种的全部指令,即实现新推出的机种指令系统一定包含所有旧机种的全部指令,即实现一个一个“向上兼容向上兼容”。因此旧机种上运行的各种软件可以
5、不加任。因此旧机种上运行的各种软件可以不加任何修改便可在新机种上运行,大大减少了软件开发费用。系列何修改便可在新机种上运行,大大减少了软件开发费用。系列机解决了各机种的软件兼容问题机解决了各机种的软件兼容问题 第6页,此课件共68页哦4.1 指令系统的发展与性能要求3、发展情况n复杂指令系统计算机,简称CISC。但是如此庞大的指令系统不但使计算机的研制周期变长,难以保证正确性,不易调试维护,而且由于采用了大量使用频率很低的复杂指令而造成硬件资源浪费。n精简指令系统计算机:简称RISC,人们又提出了便于VLSI技术实现的精简指令系统计算机。第7页,此课件共68页哦一个完善的指令系统应满足如下四方
6、面的要求:一个完善的指令系统应满足如下四方面的要求:1.完备性完备性用汇编语言编写各种程序时,指令系统直接提供的指令用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软足够使用,而不必用软件来实现件来实现。完备性要求指令系统丰富、功能齐全、使用方便。完备性要求指令系统丰富、功能齐全、使用方便。2.有效性有效性利用该指令系统所编写的程序能够高效率的运行。高效率主要表现在程序利用该指令系统所编写的程序能够高效率的运行。高效率主要表现在程序占据存储空间小、执行速度快占据存储空间小、执行速度快。一般来说,一个功能更强、更完善的指令系统,必定有更。一般来说,一个功能更强、更完善的指令系统
7、,必定有更好的有效性。好的有效性。3.规整性规整性规整性包括指令系统的规整性包括指令系统的对称性对称性、匀齐性匀齐性、指令格式和数据格式的一致性指令格式和数据格式的一致性。对称性对称性指在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各指在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式;种寻址方式;匀齐性匀齐性是指一种操作性质的指令可以支持各种数据类型;是指一种操作性质的指令可以支持各种数据类型;指令格式和数据格式的一致性指令格式和数据格式的一致性是指指令长度和数据长度有一定的关系,以方便处理和是指指令长度和数据长度有一定的关系,以方便处理和
8、存取。存取。4.兼容性兼容性系列机各机种之间具有相同的基本结构和共同的基本指令集,因而指令系列机各机种之间具有相同的基本结构和共同的基本指令集,因而指令系统是兼容的,即各机种上基本软件可以通用。但由于不同机种推出的时间不同,系统是兼容的,即各机种上基本软件可以通用。但由于不同机种推出的时间不同,在结构和性能上有差异,做到所有软件都完全兼容是不可能的,只能做到在结构和性能上有差异,做到所有软件都完全兼容是不可能的,只能做到“向上兼向上兼容容”,即低档机上运行的软件可以在高档机上运行。,即低档机上运行的软件可以在高档机上运行。4.1.2对指令系统性能的要求对指令系统性能的要求第8页,此课件共68页
9、哦计算机语言具有高级语言和低级语言之分。计算机语言具有高级语言和低级语言之分。高级语言如高级语言如C,FORTRAN等,其语句和用法与具体机器的指令系统等,其语句和用法与具体机器的指令系统无关。无关。低级语言分低级语言分机器语言机器语言(二进制语言)和(二进制语言)和汇编语言汇编语言(符号语言),(符号语言),这两种语这两种语言都是面向机器的语言,和具体机器的指令系统密切相关。机器语言用指令言都是面向机器的语言,和具体机器的指令系统密切相关。机器语言用指令代码编写程序,而符号语言用指令助记符来编写程序。代码编写程序,而符号语言用指令助记符来编写程序。高级语言与低级语言的性能比较高级语言与低级语
10、言的性能比较4.1.3低级语言与硬件结构的关系低级语言与硬件结构的关系第9页,此课件共68页哦高级语言与低级语言的性能比较高级语言与低级语言的性能比较第10页,此课件共68页哦4.2 指令格式指令格式指令字指令字(简称指令)即表示一条指令的机器字。(简称指令)即表示一条指令的机器字。指令格式指令格式则是指令字用二进制代码表示的结构形式,由则是指令字用二进制代码表示的结构形式,由操作操作码码字段和字段和地址码地址码字段组成。字段组成。操作码字段操作码字段地址码字段地址码字段操作码字段表征指令的操作特性与功能;操作码字段表征指令的操作特性与功能;操作码字段的位数取决于指令系统的规模,有操作码字段的
11、位数取决于指令系统的规模,有固定位数和可变固定位数和可变位数位数;若操作码字段的位数固定为若操作码字段的位数固定为n位,则指令系统最多可表示位,则指令系统最多可表示2n条指令。条指令。4.2.1操作码操作码第11页,此课件共68页哦指令系统的每一条指令都有一个操作码,它表示该指令应进行什么性质指令系统的每一条指令都有一个操作码,它表示该指令应进行什么性质的操作。的操作。不同的指令用操作码字段的不同编码来表示,每一种编码代表一种指令。不同的指令用操作码字段的不同编码来表示,每一种编码代表一种指令。组成操作码字段的位数一般取决于计算机指令系统的规模。例如,一个指组成操作码字段的位数一般取决于计算机
12、指令系统的规模。例如,一个指令系统只有令系统只有8条指令,则有条指令,则有3位操作码就够;如果有位操作码就够;如果有32条指令,那么就需要条指令,那么就需要5位操作码。位操作码。对于一个机器的指令系统,在指令字中操作码字段和地址码字段长度通常是对于一个机器的指令系统,在指令字中操作码字段和地址码字段长度通常是固定的。固定的。在单片机中,由于指令字较短,为了充分利用指令字长度,指令在单片机中,由于指令字较短,为了充分利用指令字长度,指令字的操作码字段和地址码字段是不固定的,即不同类型的指令有不同字的操作码字段和地址码字段是不固定的,即不同类型的指令有不同的划分,以便尽可能用较短的指令字长来表示越
13、来越多的操作种类,的划分,以便尽可能用较短的指令字长来表示越来越多的操作种类,并在越来越大的存储空间中寻址。并在越来越大的存储空间中寻址。第12页,此课件共68页哦n等长(指令规整,译码简单)n例如IBM 370机,该机字长32位,16个通用寄存器R0R15,共有183条指令;指令的长度可以分为16位、32位和48位等几种,所有指令的操作码都是8位固定长度。n固定长度编码的主要缺点是:信息的冗余极大,使程序的总长度增加。第13页,此课件共68页哦地址码字段通常指定参与操作的地址码字段通常指定参与操作的操作数的地址操作数的地址或或操作数本身操作数本身。根据一条指令中有几个操作数地址,可将该指令称
14、为几操作数指令或几地根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令。址指令。一般的操作数有一般的操作数有被操作数被操作数、操作数操作数及及操作结果操作结果这三种数,因而就形成这三种数,因而就形成了三地址指令格式。在此基础上,后来又发展成二地址格式、一地址了三地址指令格式。在此基础上,后来又发展成二地址格式、一地址格式和零地址格式格式和零地址格式操作码操作码 1 2 3操作码操作码 1 2操作码操作码 1操作码操作码 4.2.2地址码地址码第14页,此课件共68页哦二、地址码n三地址指令n指令格式如下:n操作码 第一操作数A1 第二操作数A2 结果A3 n功能描述:n(A
15、1)(A2)A3n(PC)+1PCn这种格式虽然省去了一个地址,但指令长度仍比较长,所以只在字长较长的大、中型机中使用,而小型、微型机中很少使用。A3A2A1第15页,此课件共68页哦二、地址码n二地址指令n其格式如下:nn操作码第一操作数A1第二操作数A2n 功能描述:n(A1)(A2)A1n(PC)+1PCn二地址指令在计算机中得到了广泛的应用,但是在使用时有一点必须注意:指令执行之后,A1中原存的内容已经被新的运算结果替换了。A2A1第16页,此课件共68页哦二、地址码n二地址地址根据操作数的物理位置分为:nSS 存储器-存储器类型nRS 寄存器-存储器类型nRR 寄存器-寄存器类型慢第
16、17页,此课件共68页哦二、地址码n一地址指令n指令格式为:n 操作码 第一操作数A1n功能描述:n(AC)(A1)ACn(PC)+1PCn单操作数运算指令,如“+1”、“-1”、“求反”n指令中给出一个源操作数的地址A1第18页,此课件共68页哦二、地址码n零地址指令n其格式为:n 操作码n“停机”、“空操作”、“清除”等控制类指令。第19页,此课件共68页哦指令字长度指令字长度:一个指令字中包含二进制代码的位数。有:一个指令字中包含二进制代码的位数。有等长等长和和变变长长两种。两种。等长指令的处理结构简单,在对于操作码字段位数可变的情等长指令的处理结构简单,在对于操作码字段位数可变的情况下
17、,利用地址码的个数不同,可将操作码向地址码部分延伸,况下,利用地址码的个数不同,可将操作码向地址码部分延伸,从而增加指令条数。从而增加指令条数。机器字长机器字长:计算机能直接处理的二进制数据的位数,它决定:计算机能直接处理的二进制数据的位数,它决定了计算机的运算精度。了计算机的运算精度。4.2.3指令字长度指令字长度其中其中:L为指令字长度,为指令字长度,N为机器字长度为机器字长度第20页,此课件共68页哦使用多字长指令,目的在于提供足够的地址位来解决访问内存任何单使用多字长指令,目的在于提供足够的地址位来解决访问内存任何单元的寻址问题。其主要缺点是必须两次或多次访问内存以取出一整条指令,元的
18、寻址问题。其主要缺点是必须两次或多次访问内存以取出一整条指令,降低了降低了CPU的运算速度,又占用了更多的存储空间。的运算速度,又占用了更多的存储空间。等长指令字结构等长指令字结构:各种指令字长度是相等的。这种指令字结构简单,且各种指令字长度是相等的。这种指令字结构简单,且指令字长度是不变的。指令字长度是不变的。变长指令字结构变长指令字结构:各种指令字长度随指令功能而异。结构灵活,能充分各种指令字长度随指令功能而异。结构灵活,能充分利用指令长度,但指令的控制较复杂。利用指令长度,但指令的控制较复杂。第21页,此课件共68页哦由于硬件只能识别由于硬件只能识别1和和0,所以采用二进制操作码是必要的
19、,但是,所以采用二进制操作码是必要的,但是我们用二进制来书写程序却非常麻烦。我们用二进制来书写程序却非常麻烦。为了便于书写和阅读程序,每条指令通常用为了便于书写和阅读程序,每条指令通常用3个或个或4个英文缩写字母来表示。个英文缩写字母来表示。这种缩写码叫做指令助记符。这种缩写码叫做指令助记符。表表4.24.2典型的指令助记符典型的指令助记符典典 型型 指指 令令 指令助记符指令助记符 二进制操作码二进制操作码 加法加法 ADD 001 减法减法 SUB 010 传送传送 MOV 011 跳转跳转 JMP 100 转子转子 JSR 101 存储存储 STR 110 读数读数 LDA 1114.2
20、.4指令助记符指令助记符第22页,此课件共68页哦如上表所示,这里我们假定指令系统只有如上表所示,这里我们假定指令系统只有7条指令,所以条指令,所以操作码只需操作码只需3位二进制。位二进制。由于指令助记符提示了每条指令的意由于指令助记符提示了每条指令的意义,因此比较容易记忆,书写起来比较方便,阅读程序容易义,因此比较容易记忆,书写起来比较方便,阅读程序容易理解。理解。需要注意的是需要注意的是,在不同的计算机中,指令助记符的规定是,在不同的计算机中,指令助记符的规定是不一样的。因此,指令助记符还必须转换成与它们相对应的二不一样的。因此,指令助记符还必须转换成与它们相对应的二进制码。这种转换借助汇
21、编程序可以自动完成,汇编程序相当进制码。这种转换借助汇编程序可以自动完成,汇编程序相当于一个于一个“翻译翻译”。第23页,此课件共68页哦1.八位微型计算机的指令格式八位微型计算机的指令格式8位微型机字长只有位微型机字长只有8位,指令结构是一种可变字长形式,包含单字长、双位,指令结构是一种可变字长形式,包含单字长、双字长、三字长指令等多种。字长、三字长指令等多种。操作码操作码 操作码操作码 1 2操作码操作码 1单字长指令单字长指令双字长指令双字长指令三字长指令三字长指令内存按字节编址,所以单字长指令每执行一条指令后,指令地址加。内存按字节编址,所以单字长指令每执行一条指令后,指令地址加。双字
22、长指令或三字长指令每执行一条指令时,指令地址要加双字长指令或三字长指令每执行一条指令时,指令地址要加2或加或加3,可见多,可见多字长的指令格式不利于提高机器速度。字长的指令格式不利于提高机器速度。4.2.5指令格式举例指令格式举例第24页,此课件共68页哦2.PDP/11系列机指令格式系列机指令格式PDP/11系列机指令字长系列机指令字长16位,其指令格式如下表所示。位,其指令格式如下表所示。表表4.3 PDP/114.3 PDP/11系列机指令格式系列机指令格式 从表中看出,在从表中看出,在PDP/11中,操作码字段是不固定的,其长度也是不相同中,操作码字段是不固定的,其长度也是不相同的。这
23、样做可以扩展操作码以包含较多的指令。但是操作码字段不固定,的。这样做可以扩展操作码以包含较多的指令。但是操作码字段不固定,对控制器的设计来说必将复杂化。对控制器的设计来说必将复杂化。第25页,此课件共68页哦3、Pentium指令格式n指令长度可变,最短1个字节,最长12个字节,典型的CISC指令系统n由可选前缀(04)、操作码(12)、一个由mod-R/M字节和一个SIB(Scale Index Base)比例变址字节组成的地址指定器、一个可选的位移量(04)和一个可选的立即数字段(04)构成。指令前缀段取代操作数长度取代地址长度取代操作码ModReg或操作码R/MSIB位移量立即数第26页
24、,此课件共68页哦3、Pentium指令格式n指令前缀中的重复前缀指定串的重复操作,这样使Pentium处理串比软循环快得多。nLOCK前缀用于多CPU环境中对共享存储器的排他性访问n段取代用于改变默认段寄存器的情况n操作数长度取代和地址长度取代用于在保护模式下决定操作数和指令的长度n以下4个指令前缀都是可选的,分别为0或1个字节指令前缀段取代操作数长度取代地址长度取代第27页,此课件共68页哦3、Pentium指令格式n操作码是必须的,12个字节nMod、Reg、R/M为共1个字节,是可选的。nmod-R/M指定的操作数是在R中还是在M中。nmod(2位)R/M(3位)的32种值构成了8种寄
25、存器方式和24种变址方式(参考汇编语言教材);nReg或OP(3位)指定另一个操作数(寄存器)或用作OP的补充。操作码ModReg或操作码R/MSIB位移量立即数1个字节1个字节第28页,此课件共68页哦3、Pentium指令格式nS、I、B共1个字节,分别是比例系数、变址寄存器号、基址寄存器号,可选。mod-R/M中的某些编码要求SIB字节来完成寻址方式的指定;nSS(2)指定比例变换的因子,nIndex(2)指定变址寄存器,nBase(3)指定基址寄存器n位移量:可以是0,1,2,4个字节n立即数:可以是0,1,2,4个字节操作码ModReg或操作码R/MSIB位移量立即数第29页,此课件
26、共68页哦例例1指令格式如下所示,其中指令格式如下所示,其中OP为操作码,试分析指令格式的特点。为操作码,试分析指令格式的特点。15987430解解:(1)单字长二地址指令。单字长二地址指令。(2)操作码字段操作码字段OP可以指定可以指定128条指令。条指令。(3)源寄存器和目标寄存器都是通用寄存器(可分别指定源寄存器和目标寄存器都是通用寄存器(可分别指定16个),所个),所以是以是RR型指令,两个操作数均在寄存器中。型指令,两个操作数均在寄存器中。(4)这种指令结构常用于算术逻辑运算类指令。这种指令结构常用于算术逻辑运算类指令。op源寄存器源寄存器目标寄存器目标寄存器第30页,此课件共68页
27、哦例例2指令格式如下所示,指令格式如下所示,OP为操作码字段,试分析指令格式特点为操作码字段,试分析指令格式特点解解:(1)双字长二地址指令,用于访问存储器。双字长二地址指令,用于访问存储器。(2)操作码字段操作码字段OP为为6位,可以指定位,可以指定64种操作。种操作。(3)一个操作数在源寄存器(共一个操作数在源寄存器(共16个),另一个操作数在存储器中(由个),另一个操作数在存储器中(由变址寄存器和位移量决定)所以是变址寄存器和位移量决定)所以是RS型指令。型指令。op源寄存器源寄存器变址寄存器变址寄存器 位移量(位移量(16位)位)15107430第31页,此课件共68页哦4.3 操作数
28、类型n操作数类型n地址数据:地址实际上也是一种形式的数据。n数值数据:计算机中普遍使用的三种类型的数值数据。n字符数据:文本数据或字符串,目前广泛使用ASCII码。n逻辑数据:一个单元中有几位二进制bit项组成,每个bit的值可以是1或0。当数据以这种方式看待时,称为逻辑性数据。nPentium数据类型(见P111表4.4)n常规数据类型n整数数据类型n.第32页,此课件共68页哦4.4 指令和数据的寻址方式n研究问题n确定本条指令中各操作数的地址n下一条指令的地址n寻址方式是指CPU根据指令中给出的地址码字段寻找相应的操作数的方式,它与计算机硬件结构紧密相关,而且对指令的格式和功能有很大的影
29、响。第33页,此课件共68页哦4.4 指令和数据的寻址方式指令和数据的寻址方式操作数或指令在存储器中的地址操作数或指令在存储器中的地址:某个操作数或某条指令存放在:某个操作数或某条指令存放在某个存储单元时其存储单元的编号。某个存储单元时其存储单元的编号。在存储器中,操作数或指令字写入或读出的方式,有在存储器中,操作数或指令字写入或读出的方式,有地址指定方式地址指定方式、相联存储方式相联存储方式和和堆栈存取方式堆栈存取方式。当采用地址指定方式时,形成操作数或指令地址的方式,称当采用地址指定方式时,形成操作数或指令地址的方式,称为为寻址方式寻址方式。寻址方式分为两类,既寻址方式分为两类,既指令寻址
30、方式指令寻址方式和和数据寻址方式数据寻址方式,前者比较,前者比较简单,后者比较复杂。简单,后者比较复杂。4.4.1指令的寻址方式指令的寻址方式指令的寻址方式有两种:一种是指令的寻址方式有两种:一种是顺序寻址顺序寻址方式;方式;另一种是另一种是跳跃寻址跳跃寻址方式。方式。第34页,此课件共68页哦4.4 指令和数据的寻址方式n指令的寻址方式n顺序方式nPCn跳跃方式第35页,此课件共68页哦1.顺序寻址方式(顺序寻址方式(PC)1PC指令地址在内存中按顺序安排,当执行一段程指令地址在内存中按顺序安排,当执行一段程序时,通常是一条指令接一条指令的顺序执行。序时,通常是一条指令接一条指令的顺序执行。
31、从存储器取出第一条指令,然后执行这条指从存储器取出第一条指令,然后执行这条指令;接着从存储器取出第二条指令,在执行第二条令;接着从存储器取出第二条指令,在执行第二条指令;接着再取出第三条指令指令;接着再取出第三条指令这种程序顺序执行这种程序顺序执行的过程,我们称为指令的顺序寻址方式。的过程,我们称为指令的顺序寻址方式。为此,必须使用为此,必须使用程序计数器程序计数器(又称指令指针寄(又称指令指针寄存器)存器)PC来计数指令的顺序号,该顺序号就是指令在内来计数指令的顺序号,该顺序号就是指令在内存中的地址。存中的地址。第36页,此课件共68页哦2.跳跃寻址方式跳跃寻址方式目标地址目标地址PC当程序
32、转移执行的顺序时,指令的寻址就采取跳跃寻址方式。当程序转移执行的顺序时,指令的寻址就采取跳跃寻址方式。所谓跳跃,是指下条指令的地址码不是由程序计数器给出,所谓跳跃,是指下条指令的地址码不是由程序计数器给出,而是由本条指令给出。而是由本条指令给出。程序跳跃后,按新的指令地址开始顺序执行。指令计数程序跳跃后,按新的指令地址开始顺序执行。指令计数器的内容也必须相应改变,以便及时跟踪新的指令地址。器的内容也必须相应改变,以便及时跟踪新的指令地址。采用指令跳跃寻址方式,可以实现程序转移或构成循环采用指令跳跃寻址方式,可以实现程序转移或构成循环程序,从而能缩短程序长度,或将某些程序作为公共程序引程序,从而
33、能缩短程序长度,或将某些程序作为公共程序引用。指令系统中的各种条件转移或无条件转移指令,就是为用。指令系统中的各种条件转移或无条件转移指令,就是为了实现指令的跳跃寻址而设置的。了实现指令的跳跃寻址而设置的。第37页,此课件共68页哦4.4 指令和数据的寻址方式n操作数的寻址方式n形成操作数有效地址的方法,称为寻址方式。n操作数通常放在哪儿呢?第38页,此课件共68页哦4.4 指令和数据的寻址方式n操作数包含在指令中;n操作数包含在CPU的某一个内部寄存器中;n操作数包含在主存储器中;n操作数包含在I/O设备的端口中n根据操作数放在不同的地方,从而派生各种不同的寻址方式,往往不同的计算机具有不同
34、的寻址方式。第39页,此课件共68页哦例如,一种单地址指令的结构如下所示,其中用例如,一种单地址指令的结构如下所示,其中用X,I,D各字段组各字段组成该指令的操作数地址。成该指令的操作数地址。操作码操作码OP变址变址X间址间址I形式地址形式地址D指令中操作数字段的指令中操作数字段的地址码地址码是由是由形式地址形式地址和和寻址方式特征位寻址方式特征位等组合形等组合形成,因此,一般来说,指令中所给出的地址码,并不是操作数的有效成,因此,一般来说,指令中所给出的地址码,并不是操作数的有效地址。地址。因此,寻址过程就是把操作数的形式地址,变换为操作数的有效地址因此,寻址过程就是把操作数的形式地址,变换
35、为操作数的有效地址的过程。的过程。4.4.2操作数寻址方式操作数寻址方式第40页,此课件共68页哦第41页,此课件共68页哦在在指令中不明显的给出而是隐含着操作数的地址指令中不明显的给出而是隐含着操作数的地址。例如,。例如,单地址的指令格式,没有在地址字段中指明第二操作数地址,而单地址的指令格式,没有在地址字段中指明第二操作数地址,而是规定累加寄存器是规定累加寄存器AC作为第二操作数地址,作为第二操作数地址,AC对单地址指令格对单地址指令格式来说是隐含地址。式来说是隐含地址。1.隐含寻址隐含寻址 ADDA操作数操作数主存主存寻址特征寻址特征AAC暂存暂存ALU另一个操作数另一个操作数隐含在隐含
36、在AC中中第42页,此课件共68页哦2.立即寻址立即寻址 指令的地址字段指出的不是操作数的地指令的地址字段指出的不是操作数的地址,而是操作数本身。址,而是操作数本身。这种方式的特点这种方式的特点是指令执行时间很短,不需要访问内存是指令执行时间很短,不需要访问内存取数。取数。n例如:单地址的移位指令格式为例如:单地址的移位指令格式为 OP(移位移位)FD这里这里D不是地址,而是一个操作数。不是地址,而是一个操作数。F为标志位,当为标志位,当F1,操作数进行右移;当操作数进行右移;当F0时,操作数进行左移。时,操作数进行左移。第43页,此课件共68页哦直接寻址特点是:直接寻址特点是:在指令格式的地
37、址字段中直接指出操作数在内存的在指令格式的地址字段中直接指出操作数在内存的地址地址D。采用直接寻址方式时,指令字中的形式地址采用直接寻址方式时,指令字中的形式地址D就是操作数的有效地就是操作数的有效地址址E,既,既ED。因此通常把形式地址。因此通常把形式地址D又称为直接地址。此时,由寻又称为直接地址。此时,由寻址模式给予指示。址模式给予指示。如果用如果用S表示操作数,那么直接寻址的逻辑表达式表示操作数,那么直接寻址的逻辑表达式为为S(E)()(D)3.直接寻址直接寻址第44页,此课件共68页哦间接寻址的情况下,间接寻址的情况下,指令地址字段中的形式地址指令地址字段中的形式地址D不是操作数的不是
38、操作数的真正地址,而是操作数地址的指示器,真正地址,而是操作数地址的指示器,D单元的内容才是操作数的有单元的内容才是操作数的有效地址效地址。4.间接寻址间接寻址第45页,此课件共68页哦寻址特征位寻址特征位I0,表示直接寻址,这时有效地址,表示直接寻址,这时有效地址ED;I1,表示间接寻址,这时有效地址,表示间接寻址,这时有效地址E(D)。)。间接寻址方式是早期计算机中经常采用的方式,但由于两次间接寻址方式是早期计算机中经常采用的方式,但由于两次访存,影响指令执行速度,现在已不大使用。访存,影响指令执行速度,现在已不大使用。如果把直接寻址和间接寻址结合起来,指令有如下形式:如果把直接寻址和间接
39、寻址结合起来,指令有如下形式:操作码操作码ID第46页,此课件共68页哦5.寄存器寻址方式和寄存器间接寻址方式寄存器寻址方式和寄存器间接寻址方式n当操作数不放在内存中,而是放在当操作数不放在内存中,而是放在CPU的通用寄存器中的通用寄存器中时,可采用寄存器寻址时,可采用寄存器寻址方式。此时指令中给出的操作数地址不方式。此时指令中给出的操作数地址不是内存的地址单元号,而是通用寄存器是内存的地址单元号,而是通用寄存器的编号。的编号。n寄存器间接寻址方式与寄存器寻址方式寄存器间接寻址方式与寄存器寻址方式的区别在于:的区别在于:指令格式中的寄存器内容指令格式中的寄存器内容不是操作数,而是操作数的地址不
40、是操作数,而是操作数的地址,该地,该地址指明的操作数在内存中址指明的操作数在内存中第47页,此课件共68页哦6.相对寻址方式相对寻址方式相对寻址是相对寻址是把程序计数器把程序计数器PC的内容加上指令格式中的形式地址的内容加上指令格式中的形式地址D而形成而形成操作数的有效地址操作数的有效地址。程序计数器的内容就是当前指令的地址。程序计数器的内容就是当前指令的地址。“相对相对”寻址,寻址,就是相对于当前的指令地址而言。就是相对于当前的指令地址而言。采用相对寻址方式的好处是程序员无须用指令的绝对地址编程,所编采用相对寻址方式的好处是程序员无须用指令的绝对地址编程,所编程序可以放在内存任何地方。程序可
41、以放在内存任何地方。此时形式地址此时形式地址D通常称为通常称为偏移量偏移量,其值,其值可正可负可正可负,相对于当前指令地址,相对于当前指令地址进行浮动。适用于进行浮动。适用于程序浮动,广泛用于转移指令程序浮动,广泛用于转移指令第48页,此课件共68页哦7.基址寻址方式基址寻址方式基址寻址方式是基址寻址方式是将将CPU中基址寄存器的内容加上指令格式中的形式地中基址寄存器的内容加上指令格式中的形式地址而形成操作数的有效地址址而形成操作数的有效地址。它的优点是可以扩大寻址能力。同形式地址相比,基址寄存器的位数可以设它的优点是可以扩大寻址能力。同形式地址相比,基址寄存器的位数可以设置得很长,从而可以在
42、较大的存储空间中寻址。置得很长,从而可以在较大的存储空间中寻址。在程序的执行过在程序的执行过程中基址寄存器程中基址寄存器内内容不变,形内内容不变,形式地址式地址 D 可变可变第49页,此课件共68页哦变址寻址方式与基址寻址方式计算有效地址的方法很相似,变址寻址方式与基址寻址方式计算有效地址的方法很相似,它它把把CPU中某个变址寄存器的内容与偏移量中某个变址寄存器的内容与偏移量D相加来形成相加来形成操作数有效地址操作数有效地址。但使用变址寻址方式的但使用变址寻址方式的目的不在于扩大寻目的不在于扩大寻址空间址空间,而在于实现程序块的规律性变化而在于实现程序块的规律性变化。8.变址寻址方式变址寻址方
43、式OPD操作数操作数主存主存寻址特征寻址特征ALU变址寄存器变址寄存器在程序的执行过程中在程序的执行过程中 IX 内容可变,形式地址内容可变,形式地址 D 不不变变 便于处理数组问题便于处理数组问题第50页,此课件共68页哦10.段寻址方式段寻址方式微型机中采用了段寻址方式,例微型机中采用了段寻址方式,例如它们可以给定一个如它们可以给定一个20位的地址,位的地址,从而有从而有1M存储空间的直接寻址能存储空间的直接寻址能力。为此将整个力。为此将整个1M空间存储器以空间存储器以64K为单位划分成若干段。在寻为单位划分成若干段。在寻址一个内存具体单元时,由一个址一个内存具体单元时,由一个基地址再加上
44、某些寄存器提供的基地址再加上某些寄存器提供的16位偏移量来形成实际的位偏移量来形成实际的20位物理位物理地址。这个基地址就是地址。这个基地址就是CPU中的段中的段寄存器。在形成寄存器。在形成20位物理地址时,位物理地址时,段寄存器中的段寄存器中的16位数会自动左移位数会自动左移4位,然后以位,然后以16位偏移量相加,即位偏移量相加,即可形成所需的内存地址。可形成所需的内存地址。这种寻址方式的实质还是基这种寻址方式的实质还是基址寻址。址寻址。第51页,此课件共68页哦堆栈寻址方式堆栈寻址方式堆栈堆栈堆栈是一组能存储和取出数据的暂时存储单元。堆栈是一组能存储和取出数据的暂时存储单元。堆栈和其他形式
45、的存储器之间的差别就在于,它们对数据的存堆栈和其他形式的存储器之间的差别就在于,它们对数据的存取方法或寻址方法有所不同。取方法或寻址方法有所不同。AAR堆堆栈栈BABAB第52页,此课件共68页哦1.pentium的寻址方式的寻址方式外部地址总线宽度是外部地址总线宽度是36位,但它也支持位,但它也支持32位物理地址空间。位物理地址空间。在实地址模式下,逻辑地址形式为段寻址方式:在实地址模式下,逻辑地址形式为段寻址方式:将段名所指定的将段名所指定的段寄存器内容(段寄存器内容(16位)左移位)左移4位,低位,低4位补全位补全0,得到得到20位段基地址,位段基地址,再加上再加上16位段内偏移,即得位
46、段内偏移,即得20位物理地址。位物理地址。在保护模式下,在保护模式下,32位段基地址加上段内偏移得到位段基地址加上段内偏移得到32位线性地址。位线性地址。由存储管理部件将其转换成由存储管理部件将其转换成32位的物理地址。位的物理地址。4.4.3寻址方式举例寻址方式举例第53页,此课件共68页哦Pentium的寻址方式的寻址方式第54页,此课件共68页哦下面对下面对32位寻址方式作几点说明:位寻址方式作几点说明:立即数可以是立即数可以是8位,位,16位,位,32位。位。寄存器地址:一般指令或使用寄存器地址:一般指令或使用8位通用寄存器,或使用位通用寄存器,或使用16位通用位通用寄存器,或使用寄存
47、器,或使用32位通用寄存器。对位通用寄存器。对64位浮点数操作,要使用位浮点数操作,要使用一对一对32位寄存器。少数指令以段寄存器来实施寄存器寻址方式。位寄存器。少数指令以段寄存器来实施寄存器寻址方式。直接寻址:也称偏移量寻址方式,偏移量长度可以是直接寻址:也称偏移量寻址方式,偏移量长度可以是8位,位,16位,位,32位。位。基址寻址:基址寄存器基址寻址:基址寄存器B可以是上述通用寄存器中任何一个。基址可以是上述通用寄存器中任何一个。基址寄存器寄存器B的内容为有效地址。的内容为有效地址。第55页,此课件共68页哦n基址偏移量寻址:基址寄存器基址偏移量寻址:基址寄存器B是是32位通用寄位通用寄存
48、器中任何一个存器中任何一个.n比例地址偏移量寻址:也称为变址寻址方式,比例地址偏移量寻址:也称为变址寻址方式,变址寄存器变址寄存器I是是32位通用寄存器中除位通用寄存器中除ESP外的任何外的任何一个,而且可将此变址寄存器内容乘以一个,而且可将此变址寄存器内容乘以1,2,4或或8的的比例因子比例因子S,然后再加上偏移量而得到有效地址。然后再加上偏移量而得到有效地址。n,两种寻址方式是两种寻址方式是,两种寻址方式的组合,两种寻址方式的组合,此时偏移量可有可无。此时偏移量可有可无。n相对寻址:适用于转移控制类指令。用当前指相对寻址:适用于转移控制类指令。用当前指令指针寄存器令指针寄存器EIP或或IP
49、的内容(下一条指令地址)的内容(下一条指令地址)加上一个有符号的偏移量,形成加上一个有符号的偏移量,形成CS段的段内偏段的段内偏移。移。第56页,此课件共68页哦例例3一种二地址一种二地址RS型指令的结构如下所示:型指令的结构如下所示:6位位4位位1位位2位位16位位其中其中I为间接寻址标志位,为间接寻址标志位,X为寻址模式字段,为寻址模式字段,D位偏移量字段。通过位偏移量字段。通过I,X,D的组合,可构成下表所示的寻址方式。的组合,可构成下表所示的寻址方式。请写出六种寻址方式的名请写出六种寻址方式的名称。称。解解:直接寻址直接寻址相对寻址相对寻址变址寻址变址寻址寄存器间接寻址寄存器间接寻址间
50、接寻址间接寻址基址寻址基址寻址 OP I X 偏移量偏移量D第57页,此课件共68页哦例例4某某16位机器所使用的指令格式和寻址方式如下所示,该机有两个位机器所使用的指令格式和寻址方式如下所示,该机有两个20位基址寄存器,四个位基址寄存器,四个16位变址寄存器,十六个位变址寄存器,十六个16位通用寄存器,指令汇位通用寄存器,指令汇编格式中的编格式中的S(源),(源),D(目标)都是通用寄存器,(目标)都是通用寄存器,M是主存中的一个单元。是主存中的一个单元。三种指令的操作码分别是三种指令的操作码分别是MOV(OP)()(A)H,STA(OP)()(1B)H,LDA(OP)()(3C)H。MOV