计算机组成原理指令系统.ppt_第1页
计算机组成原理指令系统.ppt_第2页
计算机组成原理指令系统.ppt_第3页
计算机组成原理指令系统.ppt_第4页
计算机组成原理指令系统.ppt_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章 指令系统,指令、指令系统是计算机中一个最基本的概念。指令是指示计算机执行某些操作的命令,一台计算机的所有指令的集合构成该机的指令系统。 指令系统是计算机的主要属性,位于硬件和软件的交界面上。,宏指令:由若干条机器指令组成的软件指令,它属于软件; 机器指令:介于微指令与宏指令之间,通常简称为指令,每一条指令可完成一个独立的算术运算或逻辑运算操作。,本章所讨论的指令,是机器指令,本章学习内容,4.1 指令格式 4.2 寻址技术 4.3 堆栈与堆栈操作 4.4 指令类型,本章学习要求,理解:指令的基本格式以及不同地址码(3、2、1、0地址)的双操作数指令的区别 理解:规整型指令和非规整型指令的特点 掌握:扩展操作码的方法 理解:编址单位和指令中地址码的位数与主存容量、最小寻址单位的关系 掌握:基本的数据寻址方式和有效地址EA的计算方法 掌握:自底向上的存储器堆栈的概念及堆栈的进、出栈操作 理解:常用指令的特点,完备性: 完备性是指用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现。 完备性要求指令系统丰富、功能齐全、使用方便。一台计算机中最基本、必不可少的指令是不多的。许多指令可用最基本的指令编程来实现。 有效性: 有效性是指利用该指令系统所编写的程序能够高效 率地运行。 高效率主要表现在程序占据存储空间小、执行速度快。一般来说,一个功能更强、更完善的指令系统,必定有更好的有效性。,对指令系统性能的要求,规整性: 规整性包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。 对称性是指:在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式; 匀齐性是指:一种操作性质的指令可以支持各种数据类型,如算术运算指令可支持字节、字、双字整数的运算,十进制数运算和单、双精度浮点数运算等;指令格式和数据格式的一致性是指:指令长度和数据长度有一定的关系,以方便处理和存取。例如指令长度和数据长度通常是字节长度的整数倍。,兼容性: 系列机各机种之间具有相同的基本结构和共同的基本指令集,因而指令系统是兼容的,即各机种上基本软件可以通用。 但由于不同机种推出的时间不同,在结构和性能上有差异,做到所有软件都完全兼容是不可能的,只能做到“向上兼容”,即低档机上运行的软件可以在高档机上运行。,低级语言与硬件结构的关系,低级语言与高级语言关系,4.1 指令格式,一台计算机指令格式的选择和确定要涉及多方面的因素,如指令长度、地址码结构以及操作码结构等,是一个很复杂的问题,它与计算机系统结构、数据表示方法、指令功能设计等都密切相关。,4.1.1 机器指令的基本格式,一条指令就是机器语言的一个语句,它是一组有意义的二进制代码。,4.1.1 机器指令的基本格式(续),指令的长度是指一条指令中所包含的二进制代码的位数,它取决于操作码字段的长度、操作数地址的个数及长度。 指令长度可以等于机器字长,也可以大于或小于机器字长。 在一个指令系统中,若所有指令的长度都是相等的,称为定长指令字结构;若各种指令的长度随指令功能而异,称为变长指令字结构。,4.1.2 地址码结构,一条双操作数指令的除操作码之外,还应包含以下信息: 第一操作数地址,用A1表示; 第二操作数地址,用A2表示; 操作结果存放地址,用A3表示; 下条将要执行指令的地址,用A4表示。 这些信息可以在指令中明显的给出,称为显地址;也可以依照某种事先的约定,用隐含的方式给出,称为隐地址。,1.四地址指令,(A1)OP(A2)A3 A4下条将要执行指令的地址 其中:Ai表示地址,(Ai)表示存放于该地址中的内容。,2.三地址指令,(A1)OP(A2)A3 (PC)+1PC(隐含) 执行一条三地址的双操作数运算指令,至少需要访问?次主存。 第一次取指令本身,第二次取被操作数,第三次取操作数,第四次保存运算结果。,3.二地址指令,(A1)OP(A2)A1 (PC)+1PC(隐含) 其中:A1为目的操作数地址,A2为源操作数地址。 二地址指令执行之后,目的操作数地址中原存的内容已被破坏了。 执行一条二地址的双操作数运算指令,至少需要访问?次主存。,4.一地址指令,(Acc)OP(A1)Acc (PC)+1PC(隐含) 执行一条一地址的双操作数运算指令,只需要访问?次主存。 第一次取指令本身,第二次取操作数。被操作数和运算结果都放在累加寄存器中,所以读取和存入都不需要访问主存。,5.零地址指令,零地址的算逻类指令是用在堆栈计算机中的,堆栈计算机没有一般计算机中必备的通用寄存器,因此堆栈就成为提供操作数和保存运算结果的唯一场所。 通常,参加算逻运算的两个操作数隐含地从堆栈顶部弹出,送到运算器中进行运算,运算的结果再隐含地压入堆栈。,不同地址数指令的特点和适用场合,对于同一个问题,用三地址指令编写的程序最短,但指令长度最长,而用二、一、零地址指令来编写程序,程序的长度一个比一个长,但指令的长度一个比一个短。,指令系统中的每一条指令都有一个唯一确定的操作码,指令不同,其操作码的编码也不同。通常,希望用尽可能短的操作码字段来表达全部的指令。指令操作码的编码可以分为规整型和非规整型两类。,4.1.3 指令的操作码,1.规整型,操作码字段的位数和位置是固定的。 假定:指令系统共有m条指令,指令中操作码字段的位数为N位,则有如下关系式: Nlog2 m 规整型编码对于简化硬件设计,减少指令译码的时间是非常有利的。 IBM 370机(字长32位)的指令可分为三种不同的长度,不论指令的长度为多少位,其中操作码字段一律都是8位。,IBM 370机的指令格式,图4-1 IBM 370机的指令格式,2.非规整型,操作码字段的位数不固定,且分散地放在指令字的不同位置上。 PDP-11机(字长16位)的指令分为单字长、两字长、三字长三种,操作码字段占416位不等,可遍及整个指令长度。 显然,操作码字段的位数和位置不固定将增加指令译码和分析的难度,使控制器的设计复杂化。,PDP-11机的指令格式,图4-2 PDP-11机的指令格式,最常用的非规整型编码方式是扩展操作码法。 让操作数地址个数多的指令(如三地址指令)的操作码字段短些,操作数地址个数少的指令(如一或零地址指令)的操作码字段长些。,扩展操作码法,当用一些硬件资源代替指令字中的地址码字段后,当指令的地址字段为寄存器时,可扩大指令的寻址范围,可缩短指令字长,可减少访存次数,三地址 OP R1, R2, R3,二地址 OP R1, R2,一地址 OP R1,指令执行阶段不访存,可缩短指令字长,EXP 某指令字长为16位,每个地址码为6位,扩展操作码技术,设有14条二地址指令,100条一地址指令,100条零地址指令: 1)画出扩展图 2)计算操作码平均长度 3)指令译码逻辑,EXP 某计算机的指令系统字长定长为16位,采用扩展操作码,操作数地址需要4位。 该指令系统已有三地址指令M条,二地址指令N条,没有零地址指令。问:最多还有多少条一地址指令?,EXP 某指令系统的指令字长为12位,每个地址码长为3位,试问,采用何种方案,使得该指令系统有4条三地址,8条二地址,180条单地址指令?若二地址指令仅有7条,单地址指令最多可有多少条?,一、操作数类型,无符号整数,定点数、浮点数、十进制数,ASCII,逻辑运算,二、数据在存储器中的存放方式,字地址 为 低字节 地址,字地址 为 高字节 地址,4.1.4 指令的操作码,存储器中的数据存放(存储字长为 32 位),三、操作类型,1. 数据传送,寄存器,寄存器,寄存器,寄存器,存储器,存储器,存储器,存储器,置“1”,清“0”,2. 算术逻辑操作,加、减、乘、除、增 1、减 1、求补、浮点运算、十进制运算,与、或、非、异或、位操作、位测试、位清除、位求反,如 8086,MOVE,STORE,LOAD,MOVE,PUSH,POP,例如,MOVE,MOVE,ADD SUB MUL DIV INC DEC CMP NEG AAA AAS AAM AAD AND OR NOT XOR TEST,3. 移位操作,算术移位,4. 转移,(1) 无条件转移 JMP,(2) 条件转移,结果为零转 (Z = 1) JZ,结果溢出转 (O = 1)JO,结果有进位转(C = 1)JC,跳过一条指令 SKP,循环移位(带进位和不带进位),如,逻辑移位,完成触发器,(3) 调用和返回,CALL SUB1,CALL SUB2,CALL SUB2,RETURN,RETURN,IN AX, n,OUT DX, AL,OUT n, AX,OUT DX, AX,(4) 陷阱(Trap)与陷阱指令,意外事故的中断,设置供用户使用的陷阱指令,如 8086 INT TYPE 软中断,提供给用户使用的陷阱指令,完成系统调用,5. 输入输出,IN AL, DX,IN AX, DX,如,如,IN AL, n,OUT n, AL,4.2 寻址技术,所谓寻址,指的是寻找操作数的地址或下一条将要执行的指令地址。寻址技术包括编址方式和寻址方式。,寻址可以分为指令寻址和数据寻址。寻找下一条将要执行的指令地址称为指令寻址,寻找操作数的地址称为数据寻址。 指令寻址比较简单,它又可以细分为顺序寻址和跳跃寻址。 数据寻址方式种类较多,其最终目的都是寻找所需要的操作数。,4.2.1 指令寻址和数据寻址,顺序寻址可通过程序计数器PC加1,自动形成下一条指令的地址;跳跃寻址则需要通过程序转移类指令实现。 跳跃寻址的转移地址形成方式有3种:直接(绝对)、相对和间接寻址,它与下面介绍的数据寻址方式中的直接、相对和间接寻址是相同的,只不过寻找到的不是操作数的有效地址而是转移的有效地址而已。,4.2.1 指令寻址和数据寻址,数据寻址方式是根据指令中给出的地址码字段寻找真实操作数地址的方式。 指令中的形式地址A有效地址EA,4.2.2 基本的数据寻址方式,寻址方式,形式地址,指令字中的地址,有效地址,操作数的真实地址,约定,指令字长 = 存储字长 = 机器字长,寄存器是CPU内部重要的数据存储资源,用来暂存数据和地址,是汇编程序员能直接使用的硬件资源之一。由于寄存器的存取速度比内存快,所以,在用汇编语言编写程序时,要尽可能充分利用寄存器的存储功能。 在高级语言(如:C/C+语言)中,也有定义变量为寄存器类型的,这就是提高寄存器利用率的一种可行的方法。,4.2.2 基本的数据寻址方式,什么是寄存器,一种典型的运算器结构,4.2.2 基本的数据寻址方式,常用的16个通用寄存器:,AX,累加器,BX,基址寄存器,CX,计数器,DX,数据寄存器,SP,堆栈指针,BP,变址指针,SI,源操作数,DI,目的操作数,CS,代码段寄存器,SS,堆栈段寄存器,DS,数据段寄存器,ES,附加段寄存器,隐含寻址,操作数地址隐含在操作码中,寻址特征,A,ACC,暂存,另一个操作数 隐含在 ACC 中,如 8086,MUL 指令,被乘数隐含在 AX(16位)或 AL(8位)中,MOVS 指令,源操作数的地址隐含在 SI 中,目的操作数的地址隐含在 DI 中,指令字中少了一个地址字段,可缩短指令字长,指令中给出的不是通常意义上的操作数地址,而是操作数本身,也就是说数据就包含在指令中,只要取出指令,也就取出了可以立即使用的操作数。 在取指令时,操作码和操作数被同时取出,不必再次访问主存,从而提高了指令的执行速度。 但是,因为操作数是指令的一部分,不能被修改,而且立即数的大小受到指令长度的限制,所以这种寻址方式灵活性最差,通常用于给某一寄存器或主存单元赋初值或提供一个常数。,立即寻址,可正可负 补码,指令中地址码字段给出的地址A就是操作数的有效地址,即形式地址等于有效地址:EA=A。由于这样给出的操作数地址是不能修改的,与程序本身所在的位置无关,所以又叫做绝对寻址方式。 操作数S=(A) 这种寻址方式不需作任何寻址运算,简单直观,也便于硬件实现,但地址空间受到指令中地址码字段位数的限制。 mov BX,VAR mov CL,DA+3 mov AX,DS:100H,直接寻址,寻址特征,A,ACC,执行阶段访问一次存储器,A 的位数决定了该指令操作数的寻址范围,操作数的地址不易修改(必须修改A),间接寻址意味着指令中给出的地址A不是操作数的地址;而是存放操作数地址的主存单元的地址,简称操作数地址的地址。 通常在指令格式中划出一位作为直接或间接寻址的标志位,间接寻址时标志位=1。 在一级间接寻址中, EA=(A) S=(A),间接寻址,EA =(A),有效地址由形式地址间接提供,寻址特征,A,EA,A1,EA,执行指令阶段 2 次访存,可扩大寻址范围,便于编制程序,寻址特征,A,一次间址,多次间址,操作数,操作数,多次访存, ,转 子程序,转 子程序,间接寻址编程举例,(A) = 81,(A) = 202, 间址特征,JMP A,寄存器间接寻址,指令中的地址码给出某一通用寄存器的编号,在被指定的寄存器中存放操作数的有效地址,而操作数则存放在主存单元中。 S=(Ri) EA=(Ri),寻址特征,有效地址在寄存器中, 操作数在存储器中,执行阶段访存,便于编制循环程序,Mov BH,BP Mov AX,BX,Mov BH,SS:BP Mov AX,DS:BX,变址寻址,把变址寄存器Rx的内容与指令中给出的形式地址A相加,形成操作数有效地址,即EA = ( IX ) +A 。Rx的内容称为变址值。,寻址特征,IX 为变址寄存器(专用),通用寄存器也可以作为变址寄存器,可扩大寻址范围,便于处理数组问题,Rx 的内容由用户给定,在程序的执行过程中 Rx 内容可变,形式地址 A 不变,例,设数据块首地址为 D,求 N 个数的平均值,直接寻址,变址寻址,LDA D,ADD D + 1,ADD D + 2,ADD D + ( N -1 ),DIV # N,STA ANS,LDA # 0,LDX # 0,INX,CPX # N,BNE M,DIV # N,STA ANS,共 N + 2 条指令,共 8 条指令,X 为变址寄存器,D 为形式地址,(X) 和 #N 比较,结果不为零则转,基址寻址,基址寄存器Rb的内容与指令中给出的位移量A相加,形成操作数有效地址,即: EA = ( BR ) + A 基址寄存器的内容称为基址值。指令的地址码字段是一个位移量,位移量可正、可负。,基址寻址,图4-8 基址寻址过程,寻址特征,可扩大寻址范围,便于程序搬家,Rb 内容由操作系统或管理程序确定,在程序的执行过程中 BR 内容不变,形式地址 A 可变,可采用通用寄存器作基址寄存器,寻址特征,R0 作基址寄存器,由用户指定哪个通用寄存器作为基址寄存器,基址寄存器的内容由操作系统确定,在程序的执行过程中 R0 内容不变,形式地址 A 可变,相对寻址,相对寻址是基址寻址的一种变通,由程序计数器PC提供基准地址,指令中的地址码字段作为位移量D,两者相加后得到操作数的有效地址,即EA=(PC)+A。位移量指出的是操作数和现行指令之间的相对位置。 A 是相对于当前指令的位移量(可正可负,补码),操作数,寻址特征,相对距离 A,相对寻址方式的特点,操作数的地址不是固定的,它随着PC值的变化而变化,并且与指令地址之间总是相差一个固定值A。当指令地址改变时,由于其位移量不变,使得操作数与指令在可用的存储区内一起移动,所以仍能保证程序的正确执行。 采用PC相对寻址方式编写的程序可在主存中任意浮动,它放在主存的任何地方,所执行的效果都是一样的。 广泛用于转移指令,由于指令中给出的位移量可正、可负,所以对于指令地址而言,操作数地址可能在指令地址之前或之后。,相对寻址举例,M 随程序所在存储空间的位置不同而不同,EA = ( M+3 ) 3 = M,按字节寻址的相对寻址举例,JMP * + 8,设 当前指令地址 PC = 2000H,转移后的目的地址为 2008H,因为 取出 JMP * + 8 后 PC = 2002H,二字节指令,故 JMP * + 8 指令 的第二字节为 2008H - 2002H = 6H,EXP 设相对寻址的转移指令占3个字节,第一个字节为操作码,第二、三字节为相对位移量(补码表示),而且数据在存储器中采用小段方案存放方式。每当CPU从存储器取出一个字节时,即自动完成pc+1 -pc 。 1)若PC当前的值为240(十进制),要求转移到290(十进制),则转移指令的第二、三字节的机器代码是什么? 2)若PC当前的值为240(十进制),要求转移到200(十进制),则转移指令的第二、三字节的机器代码是什么?,页面寻址,页面寻址相当于将整个主存空间分成若干个大小相同的区,每个区称为一页,每页有若干个主存单元。每页都有自己的编号,称为页面地址;页面内的每个主存单元也有自己的编号,称为页内地址。 这样,操作数的有效地址就被分为两部分:前部为页面地址,后部为页内地址。,页面寻址(续),页内地址由指令的地址码部分自动直接提供,它与页面地址通过简单的拼装连接就可得到有效地址,无须进行计算,因此寻址迅速。根据页面地址的来源不同,页面寻址又可以分成三种不同的方式: 基页寻址,EA=0A,操作数S在零页面中。基页寻址实际上就是直接寻址。 当前页寻址,EA=(PC)HA,操作数S与指令本身处于同一页面中。 页寄存器寻址,页面地址取自页寄存器,与形式地址相拼接形成有效地址。,0页,基页寻址,A,页内地址,页面地址,EA,操作数,0038,255页,64K,当前页寻址,页内地址,页面地址,EA,操作数,A,PCH,操作数,2F38,255页,64K,堆栈寻址,(1) 堆栈的特点,堆栈,多个寄存器,指定的存储空间,先进后出(一个入出口),栈顶地址 由 SP 指出, 1,1FFFH,+1,2000 H,1FFF H,2000 H,(2) 堆栈寻址举例,PUSH A 前,PUSH A 后,POP A 前,POP A 后,(3) SP 的修改与主存编址方法有关, 按 字 编址,进栈,出栈, 按 字节 编址,存储字长 16 位,进栈,出栈,存储字长 32 位,进栈,出栈,复合寻址,先变址后间址,((ix)+A)-有效地址,先间址后变址,(A)+(ix)-有效地址,EXP ix 000010,op 100000,EXP 机器字长为16位,内存容量为64k,指令为单字长指令,有50种操作,采用基址、间址和直接寻址,问: 1)指令格式如何安排 2)存储器划分多少页面 3)能否有其它寻址方式,EXP 某计算机字长16位,存储器按字编址,访内指令格式如下,A为形式地址占8位。M为寻址方式占3位,该指令能定义多少种指令?,作业 某指令系统字长为16位,地址码取4位,试提出一种方案,使该指令系统有8条三地址指令、16条二地址指令、100条一地址指令。,作业 画出“SUB R1”指令对操作数的寻址及减法过程的流程图。设被减数和结果存于ACC中,表示间接寻址,R1

温馨提示

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

评论

0/150

提交评论