计算机组成与系统结构1课件

上传人:沈*** 文档编号:242012625 上传时间:2024-08-09 格式:PPT 页数:101 大小:1.04MB
返回 下载 相关 举报
计算机组成与系统结构1课件_第1页
第1页 / 共101页
计算机组成与系统结构1课件_第2页
第2页 / 共101页
计算机组成与系统结构1课件_第3页
第3页 / 共101页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,网络教育学院,计算机组成与系统结构,上海交通大学 网络教育学院,陈泽宇 博士 副教授,第,1,章 计算机系统概论,第,2,章 运算方法和运算器,第,3,章 存储系统,第,4,章 指令系统,第,5,章 中央处理器(,CPU,),第,6,章 总线系统,第,7,章 输入输出(,I/O,)系统,第,8,章 并行计算机系统,2024/8/9,2,第,4,章 指令系统,4.1,指令系统概述,4.2,指令格式,4.3,指令分类,4.4,寻址方式,4.5,指令系统实例,2024/8/9,3,4.1,指令系统概述,4.1.1,指令系统的发展,4.1.2,指令系统的性能要求,2024/8/9,4,4.1.1,指令系统的发展,指令,是计算机硬件能够识别并直接执行操作的命令,一台计算机中所有,指令的集合,构成了该机的,指令系统,指令系统是表征计算机性能的重要因素,,其格式与功能不仅直接影响到机器的硬件结构,,也直接影响到系统软件,影响到机器的适用范围,设计一个合理有效、功能齐全、通用性强、丰富的指令系统是至关重要的,2024/8/9,5,从计算机组成的层次结构来说,计算机的指令分为微指令、机器指令和宏指令三类,微指令,是微程序级的命令,,属于硬件,宏指令,是由若干条机器指令组成的软件指令,,属于软件,机器指令,,也就是我们通常所说的,指令,,介于微指令与宏指令之间,每条指令可完成一个独立的算术运算或逻辑运算操作,2024/8/9,6,指令系统的发展经历了从简单到复杂的演变过程,1950,至,60,年代,分立元件,(,晶体管或电子管,),计算机的硬件结构简单,所支持的指令系统只有十几至几十条,最基本的指令,,而且,寻址方式简单,1960,年代中期,集成电路计算机的硬件功能不断增强,其指令系统也越来越丰富,1960,年代后期,基本指令系统相同、基本体系结构相同的,系列计算机,开始出现,从而解决了各机种的,软件兼容,问题,同一系列的各机种具有共同的指令集,而且新推出的机种其指令系统一定包含旧机种的全部指令,2024/8/9,7,1970,年代,,高级语言,成为主要程序设计语言,计算机应用日益普及,计算机设计者增设了各种各样复杂的、面向高级语言的指令,使指令系统越来越庞大,称为,复杂指令系统计算机,(,Complex Instruction Set Computer,),简称,CISC,不仅使计算机研制开发周期变长,正确性难以保证,调试维护困难,而且大量使用频率很低的复杂指令造成了硬件资源的浪费,人们提出了,精简指令系统计算机,(,Reduced Instruction Set Computer,),简称,RISC,选取使用频率最高的一些简单指令,指令条数少;,指令长度固定,指令格式种类少,寻址方式种类少;,只有取数,/,存数指令访问存储器,其余指令的操作都在寄存器之间进行,2024/8/9,8,4.1.2,指令系统的性能要求,1.,完备性,2.,有效性,3.,规整性,4.,兼容性,2024/8/9,9,指令系统的性能决定了计算机的基本功能,一个完善的指令系统应满足四个方面的要求:,完备性、有效性、规整性、兼容性,2024/8/9,10,1.,完备性,指令系统的完备性,是指用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现,完备性要求指令系统丰富、功能齐全、使用方便,一台计算机中必不可少的最基本的指令构成了指令系统的完备性,而其他一些指令则可以通过基本指令来实现,或者直接通过硬件来实现,在指令系统中采用硬件指令,可以提高程序执行速度,也便于用户编写程序,2024/8/9,11,2,有效性,有效性,是指利用指令系统提供的指令而编写的程序能够,高效率,地运行,高效率主要表现在,程序占据存储空间小,执行速度快,通常,一个功能完善的指令系统必定有很好的有效性,2024/8/9,12,3,规整性,规整性,是指指令系统的对称性、匀齐性、指令格式和数据格式的一致性,指令的对称性,是指在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式,这对提高程序的可读性、简化程序设计带来便利,指令的匀齐性,是指一种操作性质的指令可以支持各种数据类型,例如,算术运算指令可支持字节、字和双字整数运算,十进制数运算,单、双精度浮点运算等,因此,程序设计者在选用指令时无须考虑数据类型,可提高编程效率,指令格式和数据格式的一致性,是指指令长度和数据长度有一定的关系,以方便处理和存取,2024/8/9,13,4,兼容性,兼容性,是指计算机的体系结构设计基本相同,计算机之间具有相同的基本结构、数据表示和共同的基本指令集合,因此指令系统也是兼容的,即同一个软件可以不加修改就在其他系统结构相同的机器上使用,做到所有软件都完全兼容是不可能的,目前,对于同一系列的计算机,新推出机种的指令系统通常包含旧机种的全部指令,实现了“向上兼容”,即低档机上运行的软件不需任何修改便可在高档机上运行,2024/8/9,14,4.2,指令格式,4.2.1,操作码,4.2.2,地址码,4.2.3,指令字长度,4.2.4,指令助记符,2024/8/9,15,机器指令是用机器字来表示的,表示一条指令的机器字称为,指令字,(简称指令),指令格式,是指令字用二进制代码表示的结构形式,一般由两部分组成,操作码,(,Operation Code,)字段,表征指令的,操作特性与功能,地址码,(,Address Code,)字段,通常用来指定参与操作的,操作数的地址,2024/8/9,16,4.2.1,操作码,设计计算机时,对指令系统的每一条指令都要规定一个操作码,它是指明,指令操作性质,的命令码,CPU,从主存每次取出一条指令,指令中的操作码告诉,CPU,应该执行什么性质的操作,例如,可用操作码“,000”,表示“加法”操作,操作码“,010”,表示“减法”操作等,不同的操作码代表不同的指令,2024/8/9,17,组成操作码字段的位数一般取决于计算机指令系统的规模,所需指令数越多,组成操作码字段的位数也就越多,例如,一个指令系统只有,8,条指令,则需要,3,位操作码;如果有,32,条指令,则需要,5,位操作码,一般来说,一个包含,n,位操作码,的指令系统最多能够表示,2,n,条指令,2024/8/9,18,4.2.2,地址码,1.,零地址指令,2.,一地址指令,3.,二地址指令,4.,三地址指令,5.,多地址指令,2024/8/9,19,指令系统中的地址码用来描述指令的操作对象,在地址码中可以直接给出操作数本身,也可以给出操作数在存储器或寄存器中的地址、操作数在存储器中的间接地址等,根据指令功能的不同,一条指令中可以有一个、两个或者多个操作数地址,也可以没有操作数地址,一般情况下要求有两个操作数地址,但若要考虑存放操作结果,就需要有三个操作数地址,2024/8/9,20,根据地址码的数量,可以将指令的格式分为:零地址指令、一地址指令、二地址指令、三地址指令和多地址指令,2024/8/9,21,1.,零地址指令,指令格式中没有地址码部分,只有操作码,该类指令分两种情况:,一种是,无需操作数,如空操作指令、停机指令等,另一种是,操作数为默认的,(或称隐含的),如操作数在累加器或者堆栈中,它们的操作数由硬件机构来提供,2024/8/9,22,2.,一地址指令,常称为单操作数指令,该指令中只有一个地址码,这种指令可能是,单操作数运算,给出的地址既作为操作数的地址,也作为操作结果的存储地址,也可能是,二元运算,指令中提供一个操作数,另一个操作数则是隐含的,例如,以运算器中累加寄存器,AC,中的数据为被操作数,指令字的地址码字段所指向的数为操作数,操作结果又放回累加寄存器,AC,中,2024/8/9,23,其数学含义为,(AC),OP,(A),AC,式中,,OP,表示操作性质,如加、减、乘、除等,(AC),表示累加寄存器,AC,中的数,(A),表示主存中地址为,A,的存储单元中的数,或者是运算器中地址为,A,的通用寄存器中的数,表示把操作(运算)结果传送到指定的地方,注意:地址码字段,A,指明的是操作数的地址,而不是操作数本身,2024/8/9,24,3.,二地址指令,最常见的指令格式,又称为双操作数指令,通常情况下,指令中包括两个参加运算的操作数的地址码,运算结果保存在其中一个操作数的地址码中,从而使得该地址中,原来的数据被覆盖,其数学含义为,(,A1,),OP,(,A2,),A1,式中,,两个地址码字段,A1,和,A2,分别指明参与操作的两个数在主存或通用寄存器中的地址,地址,A1,兼做存放操作结果的地址,2024/8/9,25,4.,三地址指令,指令中包括两个操作数地址码和一个结果地址码,可使得在操作结束后,原来的操作数不被改变,其数学含义为,(,A1,),OP,(,A2,),A3,式中,,A1,和,A2,指明两个操作数地址,A3,为存放操作结果的地址,2024/8/9,26,5.,多地址指令,以四地址指令为例,四地址指令比三地址指令增加了,下一条要执行的指令地址,其优点是非常直观,指令所用的所有参数都有各自的存放地址,并且有明确的下一条指令地址,程序的流程很明确,其缺点也是显而易见的,这就是指令所占的长度太长,2024/8/9,27,从操作数的物理位置来说,,二地址指令格式,又可归结为,三种类型,:,1,),存储器,-,存储器,(,Storage-Storage,SS,)型指令,指令在操作时需要,多次访问主存,参与读、写操作的数都放在主存里,2,),寄存器,-,寄存器,(,Register-Register,RR,)型指令,指令在操作时需要,多次访问寄存器,从寄存器中取操作数,把操作结果放到寄存器中,由于不需要访问主存,机器执行寄存器,-,寄存器型指令的,速度很快,3,),寄存器,-,存储器,(,Register-Storage,RS,)型指令,指令在操作时,既要访问主存单元,又要访问寄存器,2024/8/9,28,计算机选择什么样的指令格式,包括多方面的因素,一般情况下,,地址码越少,,占用的存储器空间就越小,运行速度也越快,具有时间和空间上的优势,而,地址码越多,,指令内容就越丰富,因此,要通过指令的功能来选择指令的格式,一个指令系统中所采用的指令地址结构并不是惟一的,往往混合采用多种格式,以增强指令的功能,2024/8/9,29,4.2.3,指令字长度,一个指令字中包含二进制代码的位数,称为,指令字长度,计算机能直接处理的二进制数据的位数称为,机器字长,决定了计算机的运算精度,机器字长通常与主存单元的位数一致,2024/8/9,30,指令字长度,指令字长度等于机器字长的指令,称为,单字长,指令,指令字长度等于半个机器字长的指令,称为,半字长,指令,指令字长度等于两个机器字长的指令,称为,双字长,指令,例如,,IBM 370,系列,32,位机的指令格式有半字长的,单字长的,还有一个半字长的,Pentium,系列机的,指令字长度也是可变的,有,8,位、,16,位、,32,位、,64,位不等,2024/8/9,31,使用,多字长指令,目的在于提供足够的地址位来解决访问主存任何单元的寻址问题,主要缺点是,必须两次或多次访问主存以取出一整条指令,降低了,CPU,的运算速度,同时占用了更多的存储空间,2024/8/9,32,在一个指令系统中,如果各种指令字长度是相等的,就称为,等长指令字结构,这种指令字结构简单,且指令字长度不变,例如都采用单字长指令或半字长指令,如果各种指令字长度随指令功能而异,就称为,变长指令字结构,这种指令字结构灵活,能充分利用指令长度,但指令的控制较为复杂,比如有的指令是单字长指令,有的指令是双字长指令,2024/8/9,33,4.2.4,指令助记符,计算机指令的操作码和地址码在计算机中用二进制数据来表示,对于书写和阅读程序非常麻烦,通常用一些比较容易记忆的文字符号来表示指令中的操作码和操作数,称为,助记符,助记符通常是,34,个英文缩写字母,提示了每条指令的意义,书写和阅读起来比较方便,也易于记忆,2024/8/9,34,例如,加法指令用,ADD,来代表操作码,001,,减法指令用,SUB,来代表操作码,010,,传送指令用,MOV,来代表操作码,011,,等等,典型的指令助记符,典型指令,指令助记符,二进制操作码,典型指令,指令助记符,二进制操作码,加法,ADD,001,转移,JSR,101,减法,SUB,010,存储,STR,110,传送,MOV,011,读数,LDA,111,跳转,JMP,100,2024/8/9,35,注意:在不同的计算机中,指令助记符的规定是不一样的,由于硬件只能识别二进制语言,因此指令助记符必须转换成对应的二进制操作码,这种转换可以借助,汇编程序,自动完成,汇编程序的作用相当于一个“翻译”,2024/8/9,36,4.3,指令分类,4.3.1,数据传送指令,4.3.2,算术运算指令,4.3.3,逻辑运算指令,4.3.4,程序控制指令,4.3.5,输入输出指令,4.3.6,字符串处理指令,4.3.7,系统控制指令,2024/8/9,37,不同机器的指令系统是各不相同的,从指令的操作码功能来考虑,一个较为完善的指令系统中常见的指令类型包括:,数据传送指令、算术运算指令、逻辑运算指令、程序控制指令、输入输出指令、字符串处理指令、系统控制指令,2024/8/9,38,4.3.1,数据传送指令,数据传送,指令是最基本、最常用、最重要的指令,用来使数据在主存与,CPU,寄存器之间进行传输,可以一次传送一个数据或一批数据,包括取数指令,LOAD,、存数指令,STORE,、存储器或寄存器间数据传送指令,MOVE,等,2024/8/9,39,4.3.2,算术运算指令,算术运算,是计算机能够执行的基本数值计算,包括加法,ADD,、减法,SUB,、乘法,MUL,、除法,DIV,等指令,算术运算指令的操作数有多种类型,定点数、浮点数,定点数又可以分为带符号数和无符号数,浮点数又可以分为单精度和双精度,因此,每一种运算指令也按操作数的类型分为带符号数定点运算、无符号数定点运算、单精度浮点运算、双精度浮点运算等,2024/8/9,40,4.3.3,逻辑运算指令,逻辑运算,是对数据进行逻辑操作,包括逻辑与,AND,、逻辑或,OR,、逻辑非,NOT,等三种基本操作以及同或、异或等组合逻辑操作,2024/8/9,41,4.3.4,程序控制指令,1,转移指令,2,转子程序指令与子程序返回指令,3,程序中断指令,2024/8/9,42,控制程序的流程,使程序具有调试与判断功能,主要包括:转移指令、转子程序指令与子程序返回指令、程序中断指令等,2024/8/9,43,1,转移指令,包括,条件转移和无条件转移,指令,将程序计数器,PC,(,Program Counter,)中的指令地址值更新为需要转移的目标指令的地址值,条件转移指令是指当满足规定的条件后才执行转移,无条件转移指令则不受任何约束地将程序转移,2024/8/9,44,2,转子程序指令与子程序返回指令,转子程序,指令是实现子程序调用的指令,子程序是能够完成某一特定功能的程序段,由于经常要使用,所以独立出来作为子程序,在需要时由主程序调用,子程序返回,指令,为了能够从子程序中正确返回到主程序的,断点,(,Breakpoint,)并继续执行,在调用子程序时,,首先将主程序中下一条指令的地址存放在一个临时存储单元中,然后转入执行子程序,等子程序执行到最后一条指令(通常是返回指令)时,将存放在临时存储单元中的地址取出作为下一条指令地址,这样就返回了主程序,2024/8/9,45,3,程序中断指令,中断一般是在计算机系统出现异常情况或接到特殊请求时随机产生的,当产生中断时,程序转入中断处理程序,为了在应用程序中使用中断服务程序,指令系统提供了各种,引起中断,的指令,2024/8/9,46,4.3.5,输入输出指令,主机与外围设备进行信息交换的一类指令,用于启动外设、检测外设的工作状态、读写外设的数据等,信息由外围设备传向主机称为,输入(,Input,),,反之则称为,输出(,Output,),有些计算机对于主存和外设未采用统一编码技术,因此需要专门的输入输出操作指令;,有些计算机把外设看作一个特殊的存储单元而与存储器单元统一编址,因此用一般的访问存储器的指令即可访问外设,2024/8/9,47,4.3.6,字符串处理指令,字符串处理,指令,包括字符串传送、转换、比较、查找、匹配、替换等,这些指令的设置可以大大加快文字处理软件的运行速度,2024/8/9,48,4.3.7,系统控制指令,用于改变计算机系统的工作状态,包括停机指令、空操作指令、条件码指令和开,/,关中断指令等,当用户程序执行完毕时,可以安排一条,停机,指令,此时计算机不再继续执行程序,空操作,指令除了递增程序计数器之外,不进行任何其他操作,2024/8/9,49,条件码,用来保存当前指令执行结果的特征,条件码指令对条件码进行置位或清除操作,开,/,关中断,指令可以视作为特殊的条件码指令,开,/,关中断意味着对中断请求的允许或禁止,在某些计算机中可以用条件码中的一位标志位来进行设置,在其他计算机中可采用设定程序优先级的方法来实现开,/,关中断的功能,2024/8/9,50,除了以上提到的指令外,还有,特权指令,特权指令是指具有特殊权限的指令,主要用于系统资源的分配和管理,一般不直接提供给用户使用,2024/8/9,51,4.4,寻址方式,4.4.1,指令寻址方式,4.4.2,操作数寻址方式,4.4.3,堆栈寻址方式,2024/8/9,52,存储器既可用来存放指令,又可用来存放数据,在程序运行过程中,形成指令或操作数地址的方式,称为,寻址方式,寻址方式可以分为两类,指令寻址方式较为简单,数据寻址方式较为复杂,2024/8/9,53,4.4.1,指令寻址方式,1,顺序寻址方式,2,跳跃寻址方式,2024/8/9,54,1,顺序寻址方式,由于指令地址在主存中顺序排列,当执行一段程序时,通常是一条指令接着一条指令地顺序执行,从存储器取出第一条指令,然后执行这条指令,接着从存储器取出第二条指令,再执行第二条指令,2024/8/9,55,这种程序顺序执行的过程称为指令的,顺序寻址,方式,CAI,演示,为此,必须使用,程序计数器,PC,来计数指令的顺序号,该顺序号就是指令在主存中的地址,指令逐条顺序执行,由,PC+1PC,控制,2024/8/9,56,2,跳跃寻址方式,所谓指令的,跳跃寻址,,是指下一条指令的地址码不是由程序计数器给出,而是由本条指令直接给出,CAI,演示,程序跳跃后,按新的指令地址开始顺序执行,指令计数器的内容也必须相应改变,以便及时跟踪新的指令地址,2024/8/9,57,采用指令跳跃寻址方式,可以实现程序转移或构成循环程序,从而缩短程序长度,或将某些程序作为公共程序调用,指令系统中的各种条件转移或无条件转移指令,就是为了实现指令的跳跃寻址而设置的,2024/8/9,58,4.4.2,操作数寻址方式,1,立即寻址方式,2,直接寻址方式,3,间接寻址方式,4,寄存器寻址方式,5,基址寻址方式,6,变址寻址方式,7,相对寻址方式,2024/8/9,59,指令中形成操作数或操作数地址的方式称为操作数的寻址方式,一般把指令中直接给出的地址称为,形式地址,从形式地址生成有效地址,的各种方式称为各种不同的存储器寻址方式,每种寻址方式都有一种对形式地址进行变换处理的运算规则,2024/8/9,60,1,立即寻址方式,指令的地址码字段指出的不是地址,而是操作数本身,这种寻址方式称为,立即寻址,方式,立即寻址由于在取出指令的同时也取出了操作数,所以指令的执行速度很快,但由于操作数是指令的一部分,不便于修改,降低了程序的通用性和灵活性,因此,立即寻址方式只适合于操作数固定的场合,通常用于为主存单元和寄存器提供常数,例如:,ADD B,33H;33H,为立即数,2024/8/9,61,2,直接寻址方式,直接寻址,就是在指令的地址字段中直接指出操作数在主存中的地址,即,形式地址等于有效地址,这种寻址方式简单、直观,是一种最基本的寻址方式,2024/8/9,62,例如,,INC 3A00H,是一条加,1,指令,采用直接寻址方式,指令有效地址,E=3A00H,,表示将地址为,3A00H,的存储单元中的操作数加,1,CAI,演示,2024/8/9,63,3,间接寻址方式,间接寻址,中指令地址码字段所指向的存储单元中存储的不是操作数本身,而是操作数的地址,间接寻址方式需要,多次访问主存储器,,既增加了指令的执行时间,又要占用主存储器单元,但是,这种寻址方式也为编程人员带来了较大的灵活性,实现起来也很简便,2024/8/9,64,而且,间接寻址指令可以访问较大的存储空间,从而,扩大指令的寻址能力,由于地址码位数的限制,如果采用直接寻址方式,能够访问的存储空间十分有限,而间接寻址的地址码所指向的存储单元则有足够的位数,因此可以访问全部存储空间,2024/8/9,65,例如,,INC(3A00H),是一条加,1,指令,采用间接寻址方式,指令有效地址,E=(3A00H)=4000H,,将地址为,4000H,的存储单元中的操作数加,1,CAI,演示,2024/8/9,66,4,寄存器寻址方式,寄存器寻址,方式就是指令中的地址码是寄存器的编号,而不是操作数地址或操作数本身,寄存器的寻址方式也可以分为,直接寻址和间接寻址,,两者的区别在于:,前者的指令地址码给出寄存器编号,寄存器的内容就是操作数本身;,后者的指令地址码给出寄存器编号,寄存器的内容是操作数的地址,根据该地址访问主存后才能得到真正的操作数,寄存器寻址方式的优点,用寄存器来暂存操作数或其地址,,无需访问主存,速度快,2024/8/9,67,例如,,INC R1,是一条加,1,指令,采用寄存器直接寻址方式,指令有效地址,E=R1,,将寄存器,R1,中的操作数加,1,CAI,演示,2024/8/9,68,例如,,INC(R1),是一条加,1,指令,采用寄存器间接寻址方式,指令有效地址为,E=(R1)=3A00H,,将地址为,3A00H,的存储单元中的操作数加,1,CAI,演示,2024/8/9,69,5,基址寻址方式,基址寻址,是将基址寄存器的内容加上指令中的形式地址而形成操作数的有效地址,其优点是可以,扩大寻址能力,相对于形式地址,基址寄存器的位数可以设置得很长,从而可以在较大的存储空间中进行寻址,2024/8/9,70,例如,,INC BX+300H,是一条加,1,指令,采用基址寻址方式,指令有效地址,E=(BX)+300H=0380H,,将地址为,0380H,的存储单元中的操作数加,1,CAI,演示,2024/8/9,71,6,变址寻址方式,变址寻址,方式是将变址寄存器的内容加上指令中的形式地址而形成操作数的有效地址,使用变址寻址方式的目的不在于扩大寻址空间,而在于,实现程序块的规律性变化,例如,有一个字符串存储在以,AC1H,为首址的连续主存单元中,只需要将首地址,AC1H,作为指令中的形式地址,而在变址寄存器中指出字符的序号,便可访问字符串中的任一字符,2024/8/9,72,例如,,INC RX+300H,是一条加,1,指令,采用变址寻址方式,指令有效地址,E=(RX)+300H=03AAH,,将地址为,03AAH,的存储单元中的操作数加,1,CAI,演示,2024/8/9,73,变址寻址和基址寻址方法十分类似,但用途不同,变址寻址主要用于数组的访问,基址寻址则用于扩大寻址范围,,从而在较大的存储空间中进行寻址,2024/8/9,74,7,相对寻址方式,相对寻址,,是,相对于当前的指令地址,而言的寻址方式,相对寻址是把程序计数器,PC,的内容加上指令中的形式地址而形成操作数的有效地址,程序计数器的内容就是当前指令的地址,所以相对寻址是相对于当前的指令地址而言的,此时的形式地址通常称为,位移量,也就是操作数位置与当前指令位置之间的相对距离,其值可正可负,相对于当前指令地址而浮动,在相对寻址方式中,由于指令的地址和它所涉及的操作数位置相对固定,因此,操作数与指令可以放在主存的任何地方,但仍能保证程序的正确执行,2024/8/9,75,例如,,INC PC+200H,是一条加,1,指令,采用相对寻址方式,指令有效地址,E=(PC)+200H=2200H,,将地址为,2200H,的存储单元中的操作数加,1,CAI,演示,2024/8/9,76,除了以上提到的几种操作数寻址方式之外,还有块寻址、段寻址方式等,块寻址,是在指令中指出数据块的起始地址和数据块的长度,使用一条块寻址指令完成一个数据块的传送,段寻址,是指将存储器空间划分为若干个单元,在寻址一个具体单元时,由一个基地址(,CPU,中的段寄存器)再加上某些寄存器提供的偏移量来形成有效地址,段寻址方式的实质还是基址寻址方式,2024/8/9,77,【,例,4-1】,一种二地址,RS,型指令的结构如下所示:,其中,I,为间接寻址标志位,,X,为寻址模式字段,,D,为偏移量字段。通过,I,、,X,、,D,的组合,可构成下表所示的寻址方式。,请写出,6,种寻址方式的名称。,【,解,】,直接寻址相对寻址变址寻址,寄存器间接寻址 间接寻址基址寻址,6,位,4,位,1,位,2,位,16,位,OP,通用寄存器,I,X,偏移量,D,寻址方式,I,X,有效地址,E,算法,说明,(1),0,00,E=D,(2),0,01,E=(PC),D,PC,为程序计数器,(3),0,10,E=(R2),D,R2,为变址寄存器,(4),1,11,E=(R3),(5),1,00,E=(D),(6),0,11,E=(R1),D,R1,为基址寄存器,2024/8/9,78,【,例,4-2】,某,16,位机器所使用的指令格式和寻址方式如下所示。指令格式中的,S,(源)、,D,(目标)都是通用寄存器,,M,是主存中的一个单元,,MOV,是传送指令,,STA,为写数指令,,LDA,为读数指令。,要求:,分析三种指令的指令格式与寻址方式特点。,CPU,完成哪一种操作所花时间最短?哪一种操作所花时间最长?第二种指令的执行时间有时会等于第三种指令的执行时间吗?,15 10,9 8,7 4,3 0,OP,目标,源,MOV S,D,15 10,9 8,7 4,3 0,OP,基址,源,变址,STA S,M,位移量,15 10,9 8,7 4,3 0,OP,目标,LDA S,M,20,位地址,2024/8/9,79,【,解,】,第一种指令是单字长二地址指令,,RR,型;,第二种指令是双字长二地址指令,,RS,型,其中,S,采用基址寻址或变址寻址,,R,由源寄存器决定;,第三种也是双字长二地址指令,,RS,型,其中,R,由目标寄存器决定,,S,由,20,位地址(直接寻址)决定。,处理机完成第一种指令所花时间最短,因为是,RR,型指令,不需要访问存储器。,第二种指令所花时间最长,因为是,RS,型指令,需要访问存储器,同时要进行寻址方式的变换运算(基址或变址),这也需要时间。,第二种指令的执行时间不会等于第三种指令,因为第三种指令虽然也访问存储器,但节省了求有效地址运算的时间开销。,2024/8/9,80,【,例,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,),3521H,15 10,9 8,7 0,OP,X,D,2024/8/9,81,【,解,】,(,1,),4420H=010001 00 00100000 B,X=00,,,D=20H,,是直接寻址,有效地址,E=D=20H,(,2,),2244H=001000 10 01000100 B,X=10,,,D=44H,,是,X2,变址寻址,有效地址,E=(X2)+D=1122H+44H=1166H,(,3,),1322H=000100 11 00100010 B,X=11,,,D=22H,,是相对寻址,有效地址,E=(PC)+D=1234H+22H=1256H,(,4,),3521H=001101 01 00100001 B,X=01,,,D=21H,,是,X1,变址寻址,有效地址,E=(X1)+D=0037H+21H=0058H,2024/8/9,82,4.4.3,堆栈寻址方式,1,寄存器堆栈,2,存储器堆栈,2024/8/9,83,计算机中的,堆栈(,Stack,),是一组能存储和取出数据的暂时存储单元,所有信息的存入和取出均按照,后进先出(,LIFO,)或先进后出(,FILO,),的原则进行,堆栈存取方式决定了其“一端存取”的特点,数据按顺序存入堆栈称为,进栈或压栈(,Push,),堆栈中一个单元的数据称为,栈项,栈项按与进栈相反的顺序从堆栈中取出称为,出栈或弹出(,Pop,),最后进栈的数据或最先出栈的数据称为,栈顶元素,2024/8/9,84,1,寄存器堆栈,寄存器堆栈又称串联堆栈、硬堆栈,某些计算机在,CPU,中设置了一组专门用于堆栈的寄存器,每个寄存器可保存一个字的数据,因为这些寄存器,直接设置于,CPU,中,,所以它们是极好的暂存单元,CPU,通过,进栈指令(,PUSH,),把数据存入堆栈,通过,出栈指令(,POP,),把数据从堆栈中取出,2024/8/9,85,寄存器堆栈(,CAI,演示,),空栈表示栈顶无数据,即位于栈顶的寄存器中无可用的数据;,存入数据,a,,即把数据,a,存入栈顶,数据,a,可以来自主存、程序计数器,PC,等部件;,再存入数据,b,,数据,b,位于栈顶,先进入的数据,a,则移至下一个寄存器;,执行出栈操作,位于栈顶的数据,b,被取出,与此同时数据,a,移至栈顶,2024/8/9,86,最后进栈的数据位于栈顶,位于栈顶的数据出栈时最先被取出,在寄存器堆栈中,还必须有“栈空”和“栈满”的指示,以防在栈空时企图执行出栈、在栈满时企图执行进栈的误操作,可以通过另外设置一个计数器来实现:,每次进栈,计数器加,1,,,计数值等于堆栈中寄存器个数,时表示,栈满,;,每次出栈,计数器减,1,,该,计数值等于,0,时表示,栈空,寄存器堆栈的特点是仅有一个出入口,后进先出,且堆栈的容量固定,不需要占用主存,2024/8/9,87,2,存储器堆栈,当前计算机普遍采用的一种堆栈结构是存储器堆栈,从,主存中划出一块区域,来作堆栈,又称软堆栈,这种堆栈的大小可变,栈底固定,栈顶浮动,由于主存的容量越来越大,存储器堆栈能够满足程序员对堆栈容量的要求,而且在需要时可建立,多个,存储器堆栈,这种堆栈有三个主要优点:,堆栈能够具有程序员要求的,任意长度,;,只要程序员喜欢,愿意建立多少堆栈,就能建立多少堆栈,可以用对存储器寻址的任何一条指令来对堆栈中的数据进行寻址,2024/8/9,88,构成存储器堆栈的硬件有两部分,一是在主存中开辟用于堆栈的存储区,二是在,CPU,中设置一个专用的寄存器,堆栈指针,SP,(,Stack Pointer,)来,保存栈顶地址,除了硬件之外,还必须有实现进栈、出栈操作的指令,作为堆栈的存储区,其两端的存储单元有高、低地址之分,因此,存储器堆栈又可分为两种:,从高地址开始生成堆栈,从低地址开始生成堆栈,2024/8/9,89,1,)从高地址开始生成堆栈(自底向上生成堆栈),从高地址开始生成堆栈是一种较常用的方式,这种堆栈的栈底地址大于栈顶地址,CAI,演示,在建栈时,,SP,指向堆栈中地址最大的单元(栈底),每次进栈时,首先把要进栈的数据存入,SP,所指向的存储单元,然后把指针,SP-1,;,出栈时,先把指针,SP+1,,然后从,SP,所指向的存储单元取出数据,2024/8/9,90,进栈,操作:,首先,数据,Msp,,然后,指针,(SP)-1SP,Msp,表示,SP,所指定的存储单元,出栈,操作:,首先,(SP)+1SP,,然后,(Msp),读出,(Msp),表示,SP,所指定的存储单元的内容,2024/8/9,91,2,)从低地址开始生成堆栈(自顶向下生成堆栈),这种堆栈的栈底地址小于栈顶地址,建栈时,SP,指向堆栈中地址最小的单元(栈底),进栈,操作:,首先,数据,Msp,,然后,指针,(SP)+1SP,出栈,操作:,首先,(SP)-1SP,,然后,(Msp),读出,2024/8/9,92,存储器堆栈,的操作方式与寄存器堆栈不同,它,移动的是栈顶,而在,寄存器堆栈中移动的是数据,堆栈中对数据的操作具有后进先出的特点,凡是以后进先出方式进行的信息传送都可以用堆栈很方便地实现,例如,,在,子程序的调用,中,用堆栈存放主程序的返回地址,实现子程序的嵌套和递归调用,在,程序中断处理,中,用堆栈存放多级中断的相关信息,实现多级中断的嵌套,2024/8/9,93,4.5,指令系统实例,4.5.1 8086/8088,指令系统,4.5.2 Pentium,指令系统,4.5.3 Pentium 4,指令系统,4.5.4 Core 2,指令系统,2024/8/9,94,4.5.1 8086/8088,指令系统,Intel,早期的处理器产品从,8086/8088,发展到,80486,,每一代,CPU,都有不同的指令系统,80 x86,系列,CPU,的指令集是在,8086/8088 CPU,的指令系统上发展起来的,8086/8088 CPU,的指令系统是,80 x86,的,基本指令集,80286,、,80386,、,80486,的指令系统保留了基本指令集,并在此基础上又进行了,扩充,扩充指令中的一部分是,8086/8088,基本指令的增强和一些专用指令,它们与基本指令集一起构成,80 x86,系列微处理器的实模式指令集;,另一部分则是系统控制指令,它们对,80286,、,80386,、,80486,保护模式下的各种高级应用提供了控制能力,2024/8/9,95,8086/8088,指令系统大体可以分为:,数据传送类指令,算术运算类指令,逻辑运算与移位类指令,串操作类指令,控制转移类指令,处理器控制类指令,2024/8/9,96,4.5.2 Pentium,指令系统,奔腾(,Pentium,)微处理器是,Intel,公司,1993,年推出的一款,32,位微处理器,是继,80486,之后,x86,系列的下一代产品,Pentium,外部有,64,位的数据总线以及,36,位的地址总线,同时也支持,64,位的物理地址空间,Pentium,引入了超标量技术,内部具有可以并行工作的两条整数处理流水线,即“,U”,流水线和“,V”,流水线,可以在每个时钟周期执行,2,条指令,Pentium,的浮点单元在,80486,的基础上进行了彻底的改进,包括对专用的加法、乘法和除法单元采用了新的算法,2024/8/9,97,Pentium,处理器的指令集是向上兼容的,因此它保留了,8086/8088,处理器的基本指令集,Pentium,处理器与,80 x86,指令集相比,新增了一些指令,主要有:,1.CPU,标识指令(,CPUID,),2.,寄存器与,CR4,之间的传送指令(,MOV,),3.,八字节的比较并交换指令(,CMPXCHG8B,),2024/8/9,98,4.5.3 Pentium 4,指令系统,相对于早期处理器的指令集,,Pentium 4,处理器新增的指令有以下几个:,1.,读时间标记计数器指令(,RDTSC,),2.,读,/,写模式专用寄存器指令(,RDMSR/WRMSR,),3.,恢复系统管理模式指令(,RSM,),4.,读性能监控计数器指令(,RDPMC,),5.SSE2,和,SSE3,扩展指令集,2024/8/9,99,4.5.4 Core 2,指令系统,Core 2,处理器最直接的改观便是彻底放弃了单核心处理器设计,全面转入“双核”乃至“多核”技术,Core 2,处理器可以拥有双核乃至四核,支持,64bit,指令集,支持,MMX,、,SSE,、,SSE2,、,SSE3,、,SSSE3,、,EM64T,等指令集和技术,Core 2,处理器采用独有的“指令融合”技术,即把两个特定的宏指令(,x86,指令)“融合”为一个微操作(,-op,),指令融合的好处:使得每个周期内需要执行的指令数减少,提高处理能力,2024/8/9,100,Core 2,处理器相对于早期的,Intel,处理器指令集,新增了许多指令,1.,优化指令(,ADDPS/HSUBPS/HADDPD/HSUBPD,),2.,数据处理指令(,ADDSUBPS/ADDSUBPD/MOVSHDUP/MOVSLDUP/MOVDDUP,),3.,数据传输指令(,FISTTP,),4.,特殊处理指令(,LDDQU,),2024/8/9,101,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


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

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


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