您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 计算机组成原理第七章.
第七章指令系统*7.1机器指令*7.2操作数类型和操作类型*7.3寻址方式7.4指令格式举例*7.5指令格式的设计7.6RISC技术从计算机的层次结构来说,计算机指令有微指令、机器指令和宏指令之分。一台计算机中所有机器指令的集合称为这台计算机的指令系统。指令系统是计算机硬件的语言系统,因此也叫做机器语言。指令系统是软件和硬件的主要交界面。指令系统表征了计算机的基本功能。它决定了机器硬件所具有的能力,也决定指令的格式和机器的硬件结构。对指令系统的要求完备性:指令齐全,编程方便高效性:占内存少,运行省时规整性:指令与运算规则统一兼容性:新旧机指令软件兼容当前的计算机指令系统,可分为CISC和RISC两类:RISC(ReducedInstructionSetComputer),通常称为精简指令系统的计算机,只有数目较少、格式与功能简单、运行高效的指令。CISC(ComplexInstructionSetComputer),通常称为复杂指令系统的计算机,其特点是:指令条数多,格式多样,寻址方式复杂,每条指令的功能强,优点是汇编程序设计容易些,但计算机控制器的实现困难多,很多指令被使用的机会并不多。指令字长指一条指令中包含的二进制码位数。指令字长选取原则:(1)长度尽可能短,以节省存储空间和提高处理速度(2)指令中各信息位利用率尽可能高。指令字长常见结构:(1)定长指令字结构:指令系统的所有指令长度相等。特点:结构简单,通常取:指令字长=机器字长。(2)变长指令字结构:各种指令长度不等,如半字长、单字长、双字长等等。特点:结构灵活,能充分利用指令信息位,但指令的分析复杂。操作码字段地址码字段指令的一般格式:7.1机器指令操作码:表示指令的操作性质,即指令要完成的功能。地址码:指出操作数的地址,即指令操作对象所在的位置。指令地址码字段的格式通常按给出的操作数地址的个数进行安排。常用的有以下格式。1、三地址指令操作码A1A2A3(A1)OP(A2)→A37.1.1地址码字段()指令中的三个地址,既可以是内存地址,也可以是通用寄存器号,根据操作数所处位置有:存储器—存储器型(SS型)指令寄存器—寄存器型(RR型)指令存储器—寄存器型(SR型)指令3、一地址指令操作码A(ACC)OP(A)→ACC2、二地址指令操作码A1A2(A1)OP(A2)→A14、零地址指令操作码适用于控制类指令或堆栈结构计算机,(SP)OP(SP+1)→SP+1为了表示不同功能的指令,指令格式中为每一条指令都要安排一个唯一的操作码。操作码字段位数选取原则:应能表示指令系统中的全部指令。7.1.2操作码字段常用操作码格式:1、定长操作码指令系统中所有指令的操作码位数一致。特点:译码结构简单,译码时间短。常用于字长较长的大、中型机。2、可变长操作码指令系统中各种指令的操作码位数不一致。特点:可充分利用指令信息位,有效地压缩操作码的平均长度。操作码的扩展方法思想:当指令总长度不变,且多种地址码结构混合使用时,可使用地址码个数较少的指令空出的地址码部分,来增加操作码的位数。举例:下图为可扩展操作码的扩展过程示意图151211650OPA1A21111000000A11111000001A1﹕﹕﹕1111111110A110位操作码?条一地址指令0000A1A20001A1A2﹕﹕﹕1110A1A24位操作码?条二地址指令11111111110000001111111111000001﹕﹕﹕111111111111111116位操作码?条零地址指令总结:二地址格式的指令操作码每减少一种,就可多构成2n(n为操作数地址码的长度)种一地址指令操作码,以此类推。例:假设指令字长为16位,操作数地址码为6位,指令有零地址、一地址、二地址三种格式(1)设操作码固定,若零地址指令有P种,一地址指令有Q种,则二地址指令最多有几种?(2)若采用扩展操作码技术,若二地址指令有X种,零地址指令有Y种,则一地址指令最多有几种?7.2.1操作数类型地址:指令中为了获得操作数,可看作无符号整数。数字:包括定点数、浮点数和十进制数。字符:包括单字符、字符串和文本。逻辑数:逻辑数形式上与数值数据无区别,但逻辑数n位间无数值和位权关系,运算时按位进行。7.2操作数类型和操作类型1、数据传送指令格式:MOV目的操作数,源操作数包括寄存器与寄存器、寄存器与存储单元、存储单元与存储单元。2、算术逻辑运算包括定点算术运算、浮点算术运算、逻辑运算。它的操作结果一般会影响标志寄存器中的状态标志位,如ZF、CF、SF、OF、AF、PF等。7.2.2操作类型(指令类型)4、程序转移无条件转移条件转移子程序调用与返回中断及中断指令3、移位操作包括算术移位、逻辑移位和循环移位。6、其它包括停机指令、空操作指令、开/关中断指令等。5、输入输出输入指令格式:IN累加器,端口输出指令格式:OUT端口,累加器对于I/O独立编址的计算机,通常设有专门的I/O指令,完成CPU和I/O间的数据传送。寻址方式指的是确定本条指令的数据地址及下一条要执行的指令地址的方法。不同的计算机系统,使用数目和功能不同的寻址方式,其实现的复杂程度各不相同。通常需要在指令中为每一个操作数专设一个地址字段,用来表示数据的来源或去向的地址。7.3寻址方式指令的寻址方式反映了程序的运行轨迹。1、顺序寻址通过程序计数器PC加1,自动形成下一条指令的地址。2、跳跃寻址对应于程序转移执行的方式,下一条指令的地址由转移类指令直接指出,而不是由PC顺序计数提供。PC内容按转移地址重新设置。7.3.1指令的寻址方式7.3.2数据的寻址方式现代的计算机中,数据寻址方式较多,指令字中必须设置一个字段来指明属于哪一种寻址方式,称为或“寻址特征码”。形式地址:指令的地址码字段一般都不代表操作数的真实地址,称为形式地址,记作A。有效地址:操作数的真实地址称为有效地址,记作EA,由寻址方式和形式地址共同确定。一般,指令的格式如下:操作码寻址特征形式地址A1、立即数寻址所需的一个操作数在指令的地址码部分直接给出。不需要计算有效地址,不用访存,无需寻址。立即数OP#A说明立即寻址只能作为双操作数指令的源操作数。例:MOVAX,1000H需思考:每种寻址方式中有效地址的计算方法、访存次数以及寻址范围。2、存储器直接寻址操作数在存储器中,指令地址字段直接给出操作数在存储器中的地址。说明:EA=A,访存一次例:MOVAX,[1000H]寻址范围:为28OP寻址特征AData存储器A8位指令的地址码字段给出的内容既不是操作数,也不是操作数的地址,而是操作数地址的地址。分为一次间接或多次间接寻址。3、(存储器)间接寻址说明EA=(A)例:MOVR1,@(1000H)需访存两次寻址范围为2nOP间接寻址特征ADataEAM(存储字长为n位)EAA………8位4、隐含寻址隐含寻址是指指令字中不明显地给出操作数的地址,其操作数地址通常隐含在累加器ACC中。这样累加器ACC就成了另一个操作数的地址ADD寻址特征AData存储器A特点:(ACC)+(A)→ACC需访存一次,寻址范围为:288位5、寄存器(直接)寻址指令地址码字段给出某一通用寄存器的地址,且所需的操作数就在这一寄存器中。OP寻址特征位Ri说明EA=Ri例:MOVAX,R1不需要访存Data寄存器……Ri指令地址码字段给出某一通用寄存器的地址,该寄存器中存放的是操作数在内存储器中所在单元的地址。6、寄存器间接寻址OPDesRiA寄存器RiData存储器A……说明EA=(Ri)例:MOVAX,[R1]访存一次操作数在存储器中,指令地址字段给出一基址寄存器和一形式地址,基址寄存器的内容与形式地址之和是操作数的内存地址。7、基址寻址OP寻址特征ARbN基址寄存器Rb+DataA+NM(存储字长为n位)AA+1………说明EA=(Rb)+A例:MOVAX,1000H[BX]访存一次,寻址范围为2n8、变址寻址操作数在存储器中,指令地址字段给出一变址寄存器和一形式地址,变址寄存器的内容与形式地址之和是操作数的内存地址。OP变址寻址特征ARxN变址寄存器Rx+DataA+NM(存储字长为n位)AA+1………说明EA=(Rx)+A例:MOVAX,1000H[DI]访存一次,寻址范围为:2n操作数的地址由程序计数器PC的内容和指令的形式地址(偏移量)相加得到。9、相对寻址OP寻址特征A(8位)NPC+说明EA=(PC)+A例:JNEA主要用于转移类指令。需访存一次,寻址范围28DataA+N存储器AA+1………堆栈是一种存储装置,它依据“后进先出(LIFO)”的原则存储数据,目前通常使用存储器堆栈。存储器堆栈是在主存中开辟一块区域,该区域一端固定,称为栈底;一端是浮动的,称为栈顶,栈顶是数据唯一的出入口。堆栈指针始终指向栈顶。10、堆栈寻址下图为常用的一种堆栈的结构:空栈情况xx...x堆栈指示器SPxx...x栈长栈底/栈顶存储器非空栈情况Ac堆栈指示器SP栈底存储器AaAbAcacb栈顶压栈操作(PUSH):SPSP-1,(SP)数据。出栈操作(POP):(SP)出栈。SPSP+1,高址低址7.5指令格式的设计设计指令格式应考虑的各种因素:1.操作类型,即指令条数2.数据类型:哪些数据参与操作3.指令格式:确定指令字长、操作码位数、地址码位数、地址个数,需几位寻址方式特征位4.寻址方式:操作数具体有哪些寻址方式5.寄存器个数例:某机主存容量为32K×16位,且指令字长、机器字长和存储字长相等,采用单字长一地址指令,共有42条。设计四种寻址方式(直接寻址、间接寻址、变址寻址、基址寻址)的指令格式,说明指令字格式以及每种寻址方式有效地址的计算方法及寻址范围。解:因该机共42条指令,所以其操作码长度为6位,有四种寻址方式,则寻址特征位为2位,所以地址码长度为8位。直接寻址,EA=A,寻址范围256。间接寻址,EA=(A),寻址范围216。基址寻址,EA=A+(BR),寻址范围216。变址寻址,EA=A+(IX),寻址范围216。7.6RISC技术由于历史的原因,计算机的指令系统为了适应程序的兼容性、编程的简洁性和硬件系统功能的完善性,把以前用软件可以实现的功能改为用指令实现,使得计算机指令系统越来越复杂,这种计算机称为“复杂指令系统计算机”,简称CISC。CISC的指令系统一般包含二到三百条指令,但测试表明,仅20%指令使用的频率超过80%,80%指令的使用频率不足20%。RISC(精简指令系统计算机)针对上述情况,作出如下安排:⑴指令系统中仅选取使用频率最高的一些简单指令;少⑵指令长度固定,指令格式种类少,寻址方式种类少;固定+规整⑶只有取数/存数指令访问存储器,其余指令的操作都在寄存器内完成;两条访存指令⑷采用流水线技术及超标量和超流水线技术,使得大部分指令在一个时钟周期内完成;指令流水⑸控制器采用组合逻辑控制,不用微程序控制;⑹CPU中设计多个通用寄存器。本章小结指令格式:操作码操作数地址固定长度可变长度(操作码扩展)零地址一地址二地址三地址2.寻址方式主存寻址寄存器寻址:寄存器直接寻址、寄存器间接寻址直接寻址变址寻址寄存器间址间接寻址相对寻址基址寻址立即数寻址堆栈寻址1.指令的一般格式
本文标题:计算机组成原理第七章.
链接地址:https://www.777doc.com/doc-2044334 .html