计算机组成与系统结构

上传人:痛*** 文档编号:167483346 上传时间:2022-11-03 格式:PPT 页数:101 大小:1,020.50KB
收藏 版权申诉 举报 下载
计算机组成与系统结构_第1页
第1页 / 共101页
计算机组成与系统结构_第2页
第2页 / 共101页
计算机组成与系统结构_第3页
第3页 / 共101页
资源描述:

《计算机组成与系统结构》由会员分享,可在线阅读,更多相关《计算机组成与系统结构(101页珍藏版)》请在装配图网上搜索。

1、计算机组成与系统结构上海交通大学 网络教育学院陈泽宇 博士 副教授网络教育学院2022年10月27日星期四2第1章 计算机系统概论第2章 运算方法和运算器第3章 存储系统第4章 指令系统第5章 中央处理器(CPU)第6章 总线系统第7章 输入输出(I/O)系统第8章 并行计算机系统网络教育学院2022年10月27日星期四3第4章 指令系统4.1 指令系统概述4.2 指令格式4.3 指令分类4.4 寻址方式4.5 指令系统实例网络教育学院2022年10月27日星期四44.1 指令系统概述4.1.1 指令系统的发展4.1.2 指令系统的性能要求网络教育学院2022年10月27日星期四54.1.1

2、指令系统的发展 指令是计算机硬件能够识别并直接执行操作的命令 一台计算机中所有指令的集合构成了该机的指令系统 指令系统是表征计算机性能的重要因素,其格式与功能不仅直接影响到机器的硬件结构,也直接影响到系统软件,影响到机器的适用范围 设计一个合理有效、功能齐全、通用性强、丰富的指令系统是至关重要的网络教育学院2022年10月27日星期四6 从计算机组成的层次结构来说,计算机的指令分为微指令、机器指令和宏指令三类 微指令是微程序级的命令,属于硬件 宏指令是由若干条机器指令组成的软件指令,属于软件 机器指令,也就是我们通常所说的指令,介于微指令与宏指令之间,每条指令可完成一个独立的算术运算或逻辑运算

3、操作网络教育学院2022年10月27日星期四7 指令系统的发展经历了从简单到复杂的演变过程 1950至60年代,分立元件(晶体管或电子管)计算机的硬件结构简单,所支持的指令系统只有十几至几十条最基本的指令,而且寻址方式简单 1960年代中期,集成电路计算机的硬件功能不断增强,其指令系统也越来越丰富 1960年代后期,基本指令系统相同、基本体系结构相同的系列计算机开始出现,从而解决了各机种的软件兼容问题 同一系列的各机种具有共同的指令集,而且新推出的机种其指令系统一定包含旧机种的全部指令网络教育学院2022年10月27日星期四8 1970年代,高级语言成为主要程序设计语言,计算机应用日益普及 计

4、算机设计者增设了各种各样复杂的、面向高级语言的指令,使指令系统越来越庞大 称为复杂指令系统计算机(Complex Instruction Set Computer),简称CISC 不仅使计算机研制开发周期变长,正确性难以保证,调试维护困难,而且大量使用频率很低的复杂指令造成了硬件资源的浪费 人们提出了精简指令系统计算机(Reduced Instruction Set Computer),简称RISC 选取使用频率最高的一些简单指令,指令条数少;指令长度固定,指令格式种类少,寻址方式种类少;只有取数/存数指令访问存储器,其余指令的操作都在寄存器之间进行网络教育学院2022年10月27日星期四94

5、.1.2 指令系统的性能要求1.完备性2.有效性3.规整性4.兼容性网络教育学院2022年10月27日星期四10 指令系统的性能决定了计算机的基本功能 一个完善的指令系统应满足四个方面的要求:完备性、有效性、规整性、兼容性网络教育学院2022年10月27日星期四111.完备性 指令系统的完备性是指用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现 完备性要求指令系统丰富、功能齐全、使用方便 一台计算机中必不可少的最基本的指令构成了指令系统的完备性 而其他一些指令则可以通过基本指令来实现,或者直接通过硬件来实现 在指令系统中采用硬件指令,可以提高程序执行速度,也便于用户

6、编写程序网络教育学院2022年10月27日星期四122有效性 有效性是指利用指令系统提供的指令而编写的程序能够高效率地运行 高效率主要表现在程序占据存储空间小,执行速度快 通常,一个功能完善的指令系统必定有很好的有效性网络教育学院2022年10月27日星期四133规整性 规整性是指指令系统的对称性、匀齐性、指令格式和数据格式的一致性 指令的对称性是指在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式 这对提高程序的可读性、简化程序设计带来便利 指令的匀齐性是指一种操作性质的指令可以支持各种数据类型 例如,算术运算指令可支持字节、字和双字整数运算,十进制数运算,单、

7、双精度浮点运算等 因此,程序设计者在选用指令时无须考虑数据类型,可提高编程效率 指令格式和数据格式的一致性是指指令长度和数据长度有一定的关系,以方便处理和存取网络教育学院2022年10月27日星期四144兼容性 兼容性是指计算机的体系结构设计基本相同,计算机之间具有相同的基本结构、数据表示和共同的基本指令集合 因此指令系统也是兼容的,即同一个软件可以不加修改就在其他系统结构相同的机器上使用 做到所有软件都完全兼容是不可能的 目前,对于同一系列的计算机,新推出机种的指令系统通常包含旧机种的全部指令,实现了“向上兼容”,即低档机上运行的软件不需任何修改便可在高档机上运行网络教育学院2022年10月

8、27日星期四154.2 指令格式4.2.1 操作码4.2.2 地址码4.2.3 指令字长度4.2.4 指令助记符网络教育学院2022年10月27日星期四16 机器指令是用机器字来表示的 表示一条指令的机器字称为指令字(简称指令)指令格式是指令字用二进制代码表示的结构形式,一般由两部分组成 操作码(Operation Code)字段 表征指令的操作特性与功能 地址码(Address Code)字段 通常用来指定参与操作的操作数的地址网络教育学院2022年10月27日星期四174.2.1 操作码 设计计算机时,对指令系统的每一条指令都要规定一个操作码,它是指明指令操作性质的命令码 CPU从主存每次

9、取出一条指令,指令中的操作码告诉CPU应该执行什么性质的操作 例如,可用操作码“000”表示“加法”操作,操作码“010”表示“减法”操作等 不同的操作码代表不同的指令网络教育学院2022年10月27日星期四18 组成操作码字段的位数一般取决于计算机指令系统的规模 所需指令数越多,组成操作码字段的位数也就越多 例如,一个指令系统只有8条指令,则需要3位操作码;如果有32条指令,则需要5位操作码 一般来说,一个包含n位操作码的指令系统最多能够表示2n条指令网络教育学院2022年10月27日星期四194.2.2 地址码1.零地址指令2.一地址指令3.二地址指令4.三地址指令5.多地址指令网络教育学

10、院2022年10月27日星期四20 指令系统中的地址码用来描述指令的操作对象 在地址码中可以直接给出操作数本身,也可以给出操作数在存储器或寄存器中的地址、操作数在存储器中的间接地址等 根据指令功能的不同,一条指令中可以有一个、两个或者多个操作数地址,也可以没有操作数地址 一般情况下要求有两个操作数地址,但若要考虑存放操作结果,就需要有三个操作数地址网络教育学院2022年10月27日星期四21 根据地址码的数量,可以将指令的格式分为:零地址指令、一地址指令、二地址指令、三地址指令和多地址指令网络教育学院2022年10月27日星期四221.零地址指令 指令格式中没有地址码部分,只有操作码 该类指令

11、分两种情况:一种是无需操作数 如空操作指令、停机指令等 另一种是操作数为默认的(或称隐含的)如操作数在累加器或者堆栈中,它们的操作数由硬件机构来提供网络教育学院2022年10月27日星期四232.一地址指令 常称为单操作数指令,该指令中只有一个地址码 这种指令可能是单操作数运算 给出的地址既作为操作数的地址,也作为操作结果的存储地址 也可能是二元运算 指令中提供一个操作数,另一个操作数则是隐含的 例如,以运算器中累加寄存器AC中的数据为被操作数,指令字的地址码字段所指向的数为操作数,操作结果又放回累加寄存器AC中网络教育学院2022年10月27日星期四24 其数学含义为(AC)OP(A)AC式

12、中,OP表示操作性质,如加、减、乘、除等(AC)表示累加寄存器AC中的数(A)表示主存中地址为A的存储单元中的数,或者是运算器中地址为A的通用寄存器中的数 表示把操作(运算)结果传送到指定的地方 注意:地址码字段A指明的是操作数的地址,而不是操作数本身网络教育学院2022年10月27日星期四253.二地址指令 最常见的指令格式,又称为双操作数指令 通常情况下,指令中包括两个参加运算的操作数的地址码 运算结果保存在其中一个操作数的地址码中,从而使得该地址中原来的数据被覆盖 其数学含义为(A1)OP(A2)A1式中,两个地址码字段A1和A2分别指明参与操作的两个数在主存或通用寄存器中的地址 地址A

13、1兼做存放操作结果的地址网络教育学院2022年10月27日星期四264.三地址指令 指令中包括两个操作数地址码和一个结果地址码 可使得在操作结束后,原来的操作数不被改变 其数学含义为(A1)OP(A2)A3式中,A1和A2指明两个操作数地址 A3为存放操作结果的地址网络教育学院2022年10月27日星期四275.多地址指令 以四地址指令为例 四地址指令比三地址指令增加了下一条要执行的指令地址 其优点是非常直观,指令所用的所有参数都有各自的存放地址,并且有明确的下一条指令地址,程序的流程很明确 其缺点也是显而易见的,这就是指令所占的长度太长网络教育学院2022年10月27日星期四28 从操作数的

14、物理位置来说,二地址指令格式又可归结为三种类型:1)存储器-存储器(Storage-Storage,SS)型指令 指令在操作时需要多次访问主存 参与读、写操作的数都放在主存里2)寄存器-寄存器(Register-Register,RR)型指令 指令在操作时需要多次访问寄存器 从寄存器中取操作数,把操作结果放到寄存器中 由于不需要访问主存,机器执行寄存器-寄存器型指令的速度很快3)寄存器-存储器(Register-Storage,RS)型指令 指令在操作时既要访问主存单元,又要访问寄存器网络教育学院2022年10月27日星期四29 计算机选择什么样的指令格式,包括多方面的因素 一般情况下,地址码

15、越少,占用的存储器空间就越小,运行速度也越快,具有时间和空间上的优势 而地址码越多,指令内容就越丰富 因此,要通过指令的功能来选择指令的格式 一个指令系统中所采用的指令地址结构并不是惟一的,往往混合采用多种格式,以增强指令的功能网络教育学院2022年10月27日星期四304.2.3 指令字长度 一个指令字中包含二进制代码的位数,称为指令字长度 计算机能直接处理的二进制数据的位数称为机器字长 决定了计算机的运算精度 机器字长通常与主存单元的位数一致网络教育学院2022年10月27日星期四31 指令字长度 指令字长度等于机器字长的指令,称为单字长指令 指令字长度等于半个机器字长的指令,称为半字长指

16、令 指令字长度等于两个机器字长的指令,称为双字长指令 例如,IBM 370系列32位机的指令格式有半字长的,单字长的,还有一个半字长的 Pentium系列机的指令字长度也是可变的,有8位、16位、32位、64位不等网络教育学院2022年10月27日星期四32 使用多字长指令 目的在于提供足够的地址位来解决访问主存任何单元的寻址问题 主要缺点是必须两次或多次访问主存以取出一整条指令 降低了CPU的运算速度,同时占用了更多的存储空间网络教育学院2022年10月27日星期四33 在一个指令系统中,如果各种指令字长度是相等的,就称为等长指令字结构 这种指令字结构简单,且指令字长度不变 例如都采用单字长

17、指令或半字长指令 如果各种指令字长度随指令功能而异,就称为变长指令字结构 这种指令字结构灵活,能充分利用指令长度,但指令的控制较为复杂 比如有的指令是单字长指令,有的指令是双字长指令网络教育学院2022年10月27日星期四344.2.4 指令助记符 计算机指令的操作码和地址码在计算机中用二进制数据来表示 对于书写和阅读程序非常麻烦 通常用一些比较容易记忆的文字符号来表示指令中的操作码和操作数,称为助记符 助记符通常是34个英文缩写字母,提示了每条指令的意义 书写和阅读起来比较方便,也易于记忆网络教育学院2022年10月27日星期四35 例如,加法指令用ADD来代表操作码001,减法指令用SUB

18、来代表操作码010,传送指令用MOV来代表操作码011,等等 典型的指令助记符典型指令指令助记符二进制操作码典型指令指令助记符二进制操作码加法ADD001转移JSR101减法SUB010存储STR110传送MOV011读数LDA111跳转JMP100网络教育学院2022年10月27日星期四36 注意:在不同的计算机中,指令助记符的规定是不一样的 由于硬件只能识别二进制语言,因此指令助记符必须转换成对应的二进制操作码 这种转换可以借助汇编程序自动完成 汇编程序的作用相当于一个“翻译”网络教育学院2022年10月27日星期四374.3 指令分类4.3.1 数据传送指令4.3.2 算术运算指令4.3

19、.3 逻辑运算指令4.3.4 程序控制指令4.3.5 输入输出指令4.3.6 字符串处理指令4.3.7 系统控制指令网络教育学院2022年10月27日星期四38 不同机器的指令系统是各不相同的 从指令的操作码功能来考虑,一个较为完善的指令系统中常见的指令类型包括:数据传送指令、算术运算指令、逻辑运算指令、程序控制指令、输入输出指令、字符串处理指令、系统控制指令网络教育学院2022年10月27日星期四394.3.1 数据传送指令 数据传送指令是最基本、最常用、最重要的指令 用来使数据在主存与CPU寄存器之间进行传输 可以一次传送一个数据或一批数据 包括取数指令LOAD、存数指令STORE、存储器

20、或寄存器间数据传送指令MOVE等网络教育学院2022年10月27日星期四404.3.2 算术运算指令 算术运算是计算机能够执行的基本数值计算 包括加法ADD、减法SUB、乘法MUL、除法DIV等指令 算术运算指令的操作数有多种类型 定点数、浮点数,定点数又可以分为带符号数和无符号数,浮点数又可以分为单精度和双精度 因此,每一种运算指令也按操作数的类型分为带符号数定点运算、无符号数定点运算、单精度浮点运算、双精度浮点运算等网络教育学院2022年10月27日星期四414.3.3 逻辑运算指令 逻辑运算是对数据进行逻辑操作 包括逻辑与AND、逻辑或OR、逻辑非NOT等三种基本操作以及同或、异或等组合

21、逻辑操作网络教育学院2022年10月27日星期四424.3.4 程序控制指令1转移指令2转子程序指令与子程序返回指令3程序中断指令网络教育学院2022年10月27日星期四43 控制程序的流程,使程序具有调试与判断功能 主要包括:转移指令、转子程序指令与子程序返回指令、程序中断指令等网络教育学院2022年10月27日星期四441转移指令 包括条件转移和无条件转移指令 将程序计数器PC(Program Counter)中的指令地址值更新为需要转移的目标指令的地址值 条件转移指令是指当满足规定的条件后才执行转移 无条件转移指令则不受任何约束地将程序转移网络教育学院2022年10月27日星期四452转

22、子程序指令与子程序返回指令 转子程序指令是实现子程序调用的指令 子程序是能够完成某一特定功能的程序段 由于经常要使用,所以独立出来作为子程序,在需要时由主程序调用 子程序返回指令 为了能够从子程序中正确返回到主程序的断点(Breakpoint)并继续执行,在调用子程序时,首先将主程序中下一条指令的地址存放在一个临时存储单元中 然后转入执行子程序 等子程序执行到最后一条指令(通常是返回指令)时,将存放在临时存储单元中的地址取出作为下一条指令地址,这样就返回了主程序网络教育学院2022年10月27日星期四463程序中断指令 中断一般是在计算机系统出现异常情况或接到特殊请求时随机产生的 当产生中断时

23、,程序转入中断处理程序 为了在应用程序中使用中断服务程序,指令系统提供了各种引起中断的指令网络教育学院2022年10月27日星期四474.3.5 输入输出指令 主机与外围设备进行信息交换的一类指令 用于启动外设、检测外设的工作状态、读写外设的数据等 信息由外围设备传向主机称为输入(Input),反之则称为输出(Output)有些计算机对于主存和外设未采用统一编码技术 因此需要专门的输入输出操作指令;有些计算机把外设看作一个特殊的存储单元而与存储器单元统一编址 因此用一般的访问存储器的指令即可访问外设网络教育学院2022年10月27日星期四484.3.6 字符串处理指令 字符串处理指令 包括字符

24、串传送、转换、比较、查找、匹配、替换等 这些指令的设置可以大大加快文字处理软件的运行速度网络教育学院2022年10月27日星期四494.3.7 系统控制指令 用于改变计算机系统的工作状态 包括停机指令、空操作指令、条件码指令和开/关中断指令等 当用户程序执行完毕时,可以安排一条停机指令 此时计算机不再继续执行程序 空操作指令除了递增程序计数器之外,不进行任何其他操作网络教育学院2022年10月27日星期四50 条件码用来保存当前指令执行结果的特征,条件码指令对条件码进行置位或清除操作 开/关中断指令可以视作为特殊的条件码指令 开/关中断意味着对中断请求的允许或禁止 在某些计算机中可以用条件码中

25、的一位标志位来进行设置 在其他计算机中可采用设定程序优先级的方法来实现开/关中断的功能网络教育学院2022年10月27日星期四51 除了以上提到的指令外,还有特权指令 特权指令是指具有特殊权限的指令 主要用于系统资源的分配和管理 一般不直接提供给用户使用网络教育学院2022年10月27日星期四524.4 寻址方式4.4.1 指令寻址方式4.4.2 操作数寻址方式4.4.3 堆栈寻址方式网络教育学院2022年10月27日星期四53 存储器既可用来存放指令,又可用来存放数据 在程序运行过程中,形成指令或操作数地址的方式,称为寻址方式 寻址方式可以分为两类 指令寻址方式较为简单 数据寻址方式较为复杂

26、网络教育学院2022年10月27日星期四544.4.1 指令寻址方式1顺序寻址方式2跳跃寻址方式网络教育学院2022年10月27日星期四551顺序寻址方式 由于指令地址在主存中顺序排列,当执行一段程序时,通常是一条指令接着一条指令地顺序执行 从存储器取出第一条指令,然后执行这条指令 接着从存储器取出第二条指令,再执行第二条指令 网络教育学院2022年10月27日星期四56 这种程序顺序执行的过程称为指令的顺序寻址方式 CAI演示 为此,必须使用程序计数器PC来计数指令的顺序号 该顺序号就是指令在主存中的地址 指令逐条顺序执行,由PC+1PC控制网络教育学院2022年10月27日星期四572跳跃

27、寻址方式 所谓指令的跳跃寻址,是指下一条指令的地址码不是由程序计数器给出,而是由本条指令直接给出 CAI演示 程序跳跃后,按新的指令地址开始顺序执行 指令计数器的内容也必须相应改变,以便及时跟踪新的指令地址指令地址指令内容存储器PC101JMP 42345网络教育学院2022年10月27日星期四58 采用指令跳跃寻址方式,可以实现程序转移或构成循环程序,从而缩短程序长度,或将某些程序作为公共程序调用 指令系统中的各种条件转移或无条件转移指令,就是为了实现指令的跳跃寻址而设置的网络教育学院2022年10月27日星期四594.4.2 操作数寻址方式1立即寻址方式2直接寻址方式3间接寻址方式4寄存器

28、寻址方式5基址寻址方式6变址寻址方式7相对寻址方式网络教育学院2022年10月27日星期四60 指令中形成操作数或操作数地址的方式称为操作数的寻址方式 一般把指令中直接给出的地址称为形式地址 从形式地址生成有效地址的各种方式称为各种不同的存储器寻址方式 每种寻址方式都有一种对形式地址进行变换处理的运算规则网络教育学院2022年10月27日星期四611立即寻址方式 指令的地址码字段指出的不是地址,而是操作数本身,这种寻址方式称为立即寻址方式 立即寻址由于在取出指令的同时也取出了操作数,所以指令的执行速度很快 但由于操作数是指令的一部分,不便于修改,降低了程序的通用性和灵活性 因此,立即寻址方式只

29、适合于操作数固定的场合 通常用于为主存单元和寄存器提供常数 例如:ADD B,33H;33H为立即数网络教育学院2022年10月27日星期四622直接寻址方式 直接寻址就是在指令的地址字段中直接指出操作数在主存中的地址 即形式地址等于有效地址 这种寻址方式简单、直观,是一种最基本的寻址方式网络教育学院2022年10月27日星期四63 例如,INC 3A00H是一条加1指令,采用直接寻址方式,指令有效地址E=3A00H,表示将地址为3A00H的存储单元中的操作数加1CAI演示网络教育学院2022年10月27日星期四643间接寻址方式 间接寻址中指令地址码字段所指向的存储单元中存储的不是操作数本身

30、,而是操作数的地址 间接寻址方式需要多次访问主存储器,既增加了指令的执行时间,又要占用主存储器单元 但是,这种寻址方式也为编程人员带来了较大的灵活性,实现起来也很简便网络教育学院2022年10月27日星期四65 而且,间接寻址指令可以访问较大的存储空间,从而扩大指令的寻址能力 由于地址码位数的限制,如果采用直接寻址方式,能够访问的存储空间十分有限 而间接寻址的地址码所指向的存储单元则有足够的位数,因此可以访问全部存储空间网络教育学院2022年10月27日星期四66 例如,INC(3A00H)是一条加1指令,采用间接寻址方式,指令有效地址E=(3A00H)=4000H,将地址为4000H的存储单

31、元中的操作数加1CAI演示网络教育学院2022年10月27日星期四674寄存器寻址方式 寄存器寻址方式就是指令中的地址码是寄存器的编号,而不是操作数地址或操作数本身 寄存器的寻址方式也可以分为直接寻址和间接寻址,两者的区别在于:前者的指令地址码给出寄存器编号,寄存器的内容就是操作数本身;后者的指令地址码给出寄存器编号,寄存器的内容是操作数的地址 根据该地址访问主存后才能得到真正的操作数 寄存器寻址方式的优点 用寄存器来暂存操作数或其地址,无需访问主存,速度快网络教育学院2022年10月27日星期四68 例如,INC R1是一条加1指令,采用寄存器直接寻址方式,指令有效地址E=R1,将寄存器R1

32、中的操作数加1CAI演示网络教育学院2022年10月27日星期四69 例如,INC(R1)是一条加1指令,采用寄存器间接寻址方式,指令有效地址为E=(R1)=3A00H,将地址为3A00H的存储单元中的操作数加1CAI演示网络教育学院2022年10月27日星期四705基址寻址方式 基址寻址是将基址寄存器的内容加上指令中的形式地址而形成操作数的有效地址 其优点是可以扩大寻址能力 相对于形式地址,基址寄存器的位数可以设置得很长,从而可以在较大的存储空间中进行寻址网络教育学院2022年10月27日星期四71 例如,INC BX+300H是一条加1指令,采用基址寻址方式,指令有效地址E=(BX)+30

33、0H=0380H,将地址为0380H的存储单元中的操作数加1CAI演示网络教育学院2022年10月27日星期四726变址寻址方式 变址寻址方式是将变址寄存器的内容加上指令中的形式地址而形成操作数的有效地址 使用变址寻址方式的目的不在于扩大寻址空间,而在于实现程序块的规律性变化 例如,有一个字符串存储在以AC1H为首址的连续主存单元中,只需要将首地址AC1H作为指令中的形式地址,而在变址寄存器中指出字符的序号,便可访问字符串中的任一字符网络教育学院2022年10月27日星期四73 例如,INC RX+300H是一条加1指令,采用变址寻址方式,指令有效地址E=(RX)+300H=03AAH,将地址

34、为03AAH的存储单元中的操作数加1CAI演示网络教育学院2022年10月27日星期四74 变址寻址和基址寻址方法十分类似,但用途不同 变址寻址主要用于数组的访问 基址寻址则用于扩大寻址范围,从而在较大的存储空间中进行寻址网络教育学院2022年10月27日星期四757相对寻址方式 相对寻址,是相对于当前的指令地址而言的寻址方式 相对寻址是把程序计数器PC的内容加上指令中的形式地址而形成操作数的有效地址 程序计数器的内容就是当前指令的地址,所以相对寻址是相对于当前的指令地址而言的 此时的形式地址通常称为位移量 也就是操作数位置与当前指令位置之间的相对距离 其值可正可负,相对于当前指令地址而浮动

35、在相对寻址方式中,由于指令的地址和它所涉及的操作数位置相对固定,因此,操作数与指令可以放在主存的任何地方,但仍能保证程序的正确执行网络教育学院2022年10月27日星期四76 例如,INC PC+200H是一条加1指令,采用相对寻址方式,指令有效地址E=(PC)+200H=2200H,将地址为2200H的存储单元中的操作数加1CAI演示网络教育学院2022年10月27日星期四77 除了以上提到的几种操作数寻址方式之外,还有块寻址、段寻址方式等 块寻址是在指令中指出数据块的起始地址和数据块的长度,使用一条块寻址指令完成一个数据块的传送 段寻址是指将存储器空间划分为若干个单元,在寻址一个具体单元时

36、,由一个基地址(CPU中的段寄存器)再加上某些寄存器提供的偏移量来形成有效地址 段寻址方式的实质还是基址寻址方式网络教育学院2022年10月27日星期四78【例4-1】一种二地址RS型指令的结构如下所示:其中I为间接寻址标志位,X为寻址模式字段,D为偏移量字段。通过I、X、D的组合,可构成下表所示的寻址方式。请写出6种寻址方式的名称。【解】直接寻址相对寻址变址寻址寄存器间接寻址 间接寻址基址寻址 6位OP4位通用寄存器1位I2位X16位偏移量D寻址方式IX有效地址E算法说明(1)000E=D(2)001E=(PC)DPC为程序计数器(3)010E=(R2)DR2为变址寄存器(4)111E=(R

37、3)(5)100E=(D)(6)011E=(R1)DR1为基址寄存器网络教育学院2022年10月27日星期四79【例4-2】某16位机器所使用的指令格式和寻址方式如下所示。指令格式中的S(源)、D(目标)都是通用寄存器,M是主存中的一个单元,MOV是传送指令,STA为写数指令,LDA为读数指令。要求:分析三种指令的指令格式与寻址方式特点。CPU完成哪一种操作所花时间最短?哪一种操作所花时间最长?第二种指令的执行时间有时会等于第三种指令的执行时间吗?15 10OP15 10OP位移量15 10OP20位地址9 89 8基址9 87 4目标7 4源7 4目标3 0源3 0变址3 0MOV S,DS

38、TA S,MLDA S,M网络教育学院2022年10月27日星期四80【解】第一种指令是单字长二地址指令,RR型;第二种指令是双字长二地址指令,RS型,其中S采用基址寻址或变址寻址,R由源寄存器决定;第三种也是双字长二地址指令,RS型,其中R由目标寄存器决定,S由20位地址(直接寻址)决定。处理机完成第一种指令所花时间最短,因为是RR型指令,不需要访问存储器。第二种指令所花时间最长,因为是RS型指令,需要访问存储器,同时要进行寻址方式的变换运算(基址或变址),这也需要时间。第二种指令的执行时间不会等于第三种指令,因为第三种指令虽然也访问存储器,但节省了求有效地址运算的时间开销。网络教育学院20

39、22年10月27日星期四81【例4-3】某微机的指令格式如下所示:OP:操作码;D:位移量;X:寻址特征位,X=00:直接寻址;X=01:用变址寄存器X1进行变址;X=10:用变址寄存器X2进行变址;X=11:相对寻址。设(PC)=1234H,(X1)=0037H,(X2)=1122H,请确定下列指令的有效地址。(1)4420H(2)2244H(3)1322H(4)3521H15 10OP9 8X7 0D网络教育学院2022年10月27日星期四82【解】(1)4420H=010001 00 00100000 BX=00,D=20H,是直接寻址,有效地址E=D=20H(2)2244H=00100

40、0 10 01000100 BX=10,D=44H,是X2变址寻址,有效地址E=(X2)+D=1122H+44H=1166H(3)1322H=000100 11 00100010 BX=11,D=22H,是相对寻址,有效地址E=(PC)+D=1234H+22H=1256H(4)3521H=001101 01 00100001 BX=01,D=21H,是X1变址寻址,有效地址E=(X1)+D=0037H+21H=0058H网络教育学院2022年10月27日星期四834.4.3 堆栈寻址方式1寄存器堆栈2存储器堆栈网络教育学院2022年10月27日星期四84 计算机中的堆栈(Stack)是一组能存

41、储和取出数据的暂时存储单元 所有信息的存入和取出均按照后进先出(LIFO)或先进后出(FILO)的原则进行 堆栈存取方式决定了其“一端存取”的特点 数据按顺序存入堆栈称为进栈或压栈(Push)堆栈中一个单元的数据称为栈项 栈项按与进栈相反的顺序从堆栈中取出称为出栈或弹出(Pop)最后进栈的数据或最先出栈的数据称为栈顶元素网络教育学院2022年10月27日星期四851寄存器堆栈 寄存器堆栈又称串联堆栈、硬堆栈 某些计算机在CPU中设置了一组专门用于堆栈的寄存器,每个寄存器可保存一个字的数据 因为这些寄存器直接设置于CPU中,所以它们是极好的暂存单元 CPU通过进栈指令(PUSH)把数据存入堆栈,

42、通过出栈指令(POP)把数据从堆栈中取出网络教育学院2022年10月27日星期四86 寄存器堆栈(CAI演示)空栈表示栈顶无数据,即位于栈顶的寄存器中无可用的数据;存入数据a,即把数据a存入栈顶,数据a可以来自主存、程序计数器PC等部件;再存入数据b,数据b位于栈顶,先进入的数据a则移至下一个寄存器;执行出栈操作,位于栈顶的数据b被取出,与此同时数据a移至栈顶网络教育学院2022年10月27日星期四87 最后进栈的数据位于栈顶,位于栈顶的数据出栈时最先被取出 在寄存器堆栈中,还必须有“栈空”和“栈满”的指示,以防在栈空时企图执行出栈、在栈满时企图执行进栈的误操作 可以通过另外设置一个计数器来实

43、现:每次进栈,计数器加1,计数值等于堆栈中寄存器个数时表示栈满;每次出栈,计数器减1,该计数值等于0时表示栈空 寄存器堆栈的特点是仅有一个出入口,后进先出,且堆栈的容量固定,不需要占用主存网络教育学院2022年10月27日星期四882存储器堆栈 当前计算机普遍采用的一种堆栈结构是存储器堆栈 从主存中划出一块区域来作堆栈,又称软堆栈 这种堆栈的大小可变,栈底固定,栈顶浮动 由于主存的容量越来越大,存储器堆栈能够满足程序员对堆栈容量的要求,而且在需要时可建立多个存储器堆栈 这种堆栈有三个主要优点:堆栈能够具有程序员要求的任意长度;只要程序员喜欢,愿意建立多少堆栈,就能建立多少堆栈 可以用对存储器寻

44、址的任何一条指令来对堆栈中的数据进行寻址网络教育学院2022年10月27日星期四89 构成存储器堆栈的硬件有两部分 一是在主存中开辟用于堆栈的存储区 二是在CPU中设置一个专用的寄存器堆栈指针SP(Stack Pointer)来保存栈顶地址 除了硬件之外,还必须有实现进栈、出栈操作的指令 作为堆栈的存储区,其两端的存储单元有高、低地址之分,因此,存储器堆栈又可分为两种:从高地址开始生成堆栈 从低地址开始生成堆栈网络教育学院2022年10月27日星期四901)从高地址开始生成堆栈(自底向上生成堆栈)从高地址开始生成堆栈是一种较常用的方式,这种堆栈的栈底地址大于栈顶地址 CAI演示 在建栈时,SP

45、指向堆栈中地址最大的单元(栈底)每次进栈时,首先把要进栈的数据存入SP所指向的存储单元,然后把指针SP-1;出栈时,先把指针SP+1,然后从SP所指向的存储单元取出数据网络教育学院2022年10月27日星期四91进栈操作:首先数据Msp,然后指针(SP)-1SPMsp表示SP所指定的存储单元出栈操作:首先(SP)+1SP,然后(Msp)读出(Msp)表示SP所指定的存储单元的内容0FFEH0FFFH1000H栈底a0FFEH0FFFH1000H栈底ba0FFEH0FFFH1000H栈底a0FFEH0FFFH1000H栈底1000H堆栈指针SP(1)建栈0FFFH堆栈指针SP(2)a进栈0FFE

46、H堆栈指针SP(3)b进栈0FFFH堆栈指针SP(4)b出栈网络教育学院2022年10月27日星期四922)从低地址开始生成堆栈(自顶向下生成堆栈)这种堆栈的栈底地址小于栈顶地址 建栈时SP指向堆栈中地址最小的单元(栈底)进栈操作:首先数据Msp,然后指针(SP)+1SP 出栈操作:首先(SP)-1SP,然后(Msp)读出网络教育学院2022年10月27日星期四93 存储器堆栈的操作方式与寄存器堆栈不同,它移动的是栈顶 而在寄存器堆栈中移动的是数据 堆栈中对数据的操作具有后进先出的特点 凡是以后进先出方式进行的信息传送都可以用堆栈很方便地实现 例如,在子程序的调用中,用堆栈存放主程序的返回地址

47、,实现子程序的嵌套和递归调用 在程序中断处理中,用堆栈存放多级中断的相关信息,实现多级中断的嵌套网络教育学院2022年10月27日星期四944.5 指令系统实例4.5.1 8086/8088指令系统4.5.2 Pentium指令系统4.5.3 Pentium 4指令系统4.5.4 Core 2指令系统网络教育学院2022年10月27日星期四954.5.1 8086/8088指令系统 Intel早期的处理器产品从8086/8088发展到80486,每一代CPU都有不同的指令系统 80 x86系列CPU的指令集是在8086/8088 CPU的指令系统上发展起来的 8086/8088 CPU的指令系

48、统是80 x86的基本指令集 80286、80386、80486的指令系统保留了基本指令集,并在此基础上又进行了扩充 扩充指令中的一部分是8086/8088基本指令的增强和一些专用指令,它们与基本指令集一起构成80 x86系列微处理器的实模式指令集;另一部分则是系统控制指令,它们对80286、80386、80486保护模式下的各种高级应用提供了控制能力网络教育学院2022年10月27日星期四96 8086/8088指令系统大体可以分为:数据传送类指令 算术运算类指令 逻辑运算与移位类指令 串操作类指令 控制转移类指令 处理器控制类指令网络教育学院2022年10月27日星期四974.5.2 Pe

49、ntium指令系统 奔腾(Pentium)微处理器是Intel公司1993年推出的一款32位微处理器,是继80486之后x86系列的下一代产品 Pentium外部有64位的数据总线以及36位的地址总线,同时也支持64位的物理地址空间 Pentium引入了超标量技术,内部具有可以并行工作的两条整数处理流水线,即“U”流水线和“V”流水线,可以在每个时钟周期执行2条指令 Pentium的浮点单元在80486的基础上进行了彻底的改进,包括对专用的加法、乘法和除法单元采用了新的算法网络教育学院2022年10月27日星期四98 Pentium处理器的指令集是向上兼容的,因此它保留了8086/8088处理

50、器的基本指令集 Pentium处理器与80 x86指令集相比,新增了一些指令,主要有:1.CPU标识指令(CPUID)2.寄存器与CR4之间的传送指令(MOV)3.八字节的比较并交换指令(CMPXCHG8B)网络教育学院2022年10月27日星期四994.5.3 Pentium 4指令系统 相对于早期处理器的指令集,Pentium 4处理器新增的指令有以下几个:1.读时间标记计数器指令(RDTSC)2.读/写模式专用寄存器指令(RDMSR/WRMSR)3.恢复系统管理模式指令(RSM)4.读性能监控计数器指令(RDPMC)5.SSE2和SSE3扩展指令集网络教育学院2022年10月27日星期四

51、1004.5.4 Core 2指令系统 Core 2处理器最直接的改观便是彻底放弃了单核心处理器设计,全面转入“双核”乃至“多核”技术 Core 2处理器可以拥有双核乃至四核,支持64bit指令集 支持MMX、SSE、SSE2、SSE3、SSSE3、EM64T等指令集和技术 Core 2处理器采用独有的“指令融合”技术 即把两个特定的宏指令(x86指令)“融合”为一个微操作(-op)指令融合的好处:使得每个周期内需要执行的指令数减少,提高处理能力网络教育学院2022年10月27日星期四101 Core 2处理器相对于早期的Intel处理器指令集,新增了许多指令1.优化指令(ADDPS/HSUBPS/HADDPD/HSUBPD)2.数据处理指令(ADDSUBPS/ADDSUBPD/MOVSHDUP/MOVSLDUP/MOVDDUP)3.数据传输指令(FISTTP)4.特殊处理指令(LDDQU)

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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