《指令系统7学习.pptx》由会员分享,可在线阅读,更多相关《指令系统7学习.pptx(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、7.1 机 器 指 令一、指令系统的发展指令系统一台计算机中所有机器指令的集合是表征一台计算机性能的重要因素,其格式与功能不仅直接影响到机器的硬件结构,也直接影响到系统软件,影响到机器的适用范围分立元件十几至几十条指令集成电路一、二百条VLSIVLSI几百条复杂指令系统计算机(CISC)精简指令系统计算机(RISC)Complex Instruction Set Complex Instruction Set ComputerComputerReduced Reduced 第1页/共48页二、指令的一般格式 操作码字段 地址码字段1.操作码反映机器做什么操作(1)长度固定(2)长度可变用于指令
2、字长较长的情况,RISC如 IBM 370操作码 8 位操作码分散在指令字的不同字段中第2页/共48页2.地址码(1)四地址(2)三地址OP A1 A2 A3 A48 6 6 6 6A1 第一操作数地址A2 第二操作数地址A3 结果的地址A4 下一条指令地址若 PC 代替 A4(A1)OP(A2)A38 8 8 8 OP A1 A2 A3(A1)OP(A2)A34 次访存4 次访存寻址范围 26=64寻址范围 28=256若 A3 用 A1 或 A2 代替设指令字长为 32 位操作码固定为 8 位第3页/共48页(3)二地址OP A1 A28 12 12(A1)OP(A2)A1(A1)OP(A
3、2)A2或4 次访存若ACC 代替 A1(或A2)?若结果存于 ACC (4)一地址(5)零地址OP A18 24无地址码无地址码(ACC)OP(A1)ACC2 次访存寻址范围 212=4 K寻址范围 224=16 M 3次访存第4页/共48页3.扩展操作码技术操作码的位数随地址数的减少而增加OP A1 A2 A3000000011110A1A1A1A2A2A2A3A3A3A2A2A2A3A3A3111111111111000000011110111111111111111111111111111111111111000000011111111111111111111111111111A3A3
4、A30000000111104 位操作码8 位操作码12 位操作码16 位操作码15条三地址指令15条二地址指令15条一地址指令16条零地址指令 固定格式最多几条指令?4 4 4 4 4 4 4 4 14条三地址指令?条二地址指令 31第5页/共48页例:例:设某指令系统指令字是设某指令系统指令字是16位,每个地址码为位,每个地址码为6位。若二地位。若二地址指令址指令15条,一地址指令条,一地址指令34条,则剩下零地址指令最多有多条,则剩下零地址指令最多有多少条?少条?解解:操作码按短到长进行扩展编码操作码按短到长进行扩展编码 二地址指令二地址指令:(0000 1110)一地址指令一地址指令:
5、11110(00000 11111);11111(00000 00001)零地址指令零地址指令:11111(00010 11111)(000000 111111)故零地址指令最多有故零地址指令最多有 30 x26=15x27 种种第6页/共48页例:例:设某指令系统指令字是设某指令系统指令字是16位,每个地址码为位,每个地址码为6位。指令有位。指令有二地址、一地址、零地址三种格式。二地址、一地址、零地址三种格式。(1)设操作码固定,零地址指令有)设操作码固定,零地址指令有P条,一地址指令条,一地址指令Q条,条,则二地址指令最多有多少条?则二地址指令最多有多少条?(2)采用扩展操作码技术,若二地
6、址指令)采用扩展操作码技术,若二地址指令X X条,零地址指条,零地址指令令Y Y条,则一地址指令最多有多少条?条,则一地址指令最多有多少条?解解:(1)操作码固定为)操作码固定为4位,共有位,共有16种指令种指令 故二地址指令最多有故二地址指令最多有 16 P Q 种种(2)二地址指令最多有)二地址指令最多有 16 种,现有种,现有X条,条,则一地址指令最多有(则一地址指令最多有(16X)26 Y/26条条第7页/共48页三、指令字长指令字长决定于 操作码的长度指令字长=存储字长2.指令字长 可变可变 操作数地址的长度 操作数地址的个数1.指令字长 固定固定按字节的倍数变化第8页/共48页小结
7、 当用一些硬件资源代替指令字中的地址码字段后 当指令的地址字段为寄存器时 可扩大指令的寻址范围 可缩短指令字长 可减少访存次数 三地址 OP R1,R2,R3 二地址 OP R1,R2 一地址 OP R1 指令执行阶段不访存 可缩短指令字长第9页/共48页7.2 操作数类型和操作种类一、操作数类型地址数字字符逻辑数无符号整数定点数、浮点数、十进制数ASCII逻辑运算二、数据在存储器中的存放方式低字节 为 低地址高字节 为 低地址37621540字地址04低字节04512673字地址04低字节第10页/共48页存储器中的数据存放(存储字长为 32 位)地址(十进制)0 4 81216202428
8、3236双字双字(地址32)双字双字(地址24)半字(地址20)半字(地址22)半字(地址16)半字(地址18)字节(地址8)字节(地址9)字节(地址10)字节(地址11)字(地址 4)字(地址 0)字节(地址14)字节(地址15)字节(地址13)字节(地址12)边界对准地址(十进制)048字节(地址7)字节(地址6)字(地址2)半字(地址10)半字(地址8)半字(地址0)字(地址4)边界未对准 第11页/共48页三、操作类型1.数据传送源目的寄存器寄存器寄存器寄存器存储器存储器存储器存储器置“1”,清“0”2.算术逻辑操作加、减、乘、除、增 1、减 1、求补、浮点运算、十进制运算与、或、非、
9、异或、位操作、位测试、位清除、位求反如 8086MOVESTORELOADMOVEPUSHPOP例如MOVEMOVEADD SUB MUL DIV INC DEC CMP NEG AAA AAS AAM AAD AND OR NOT XOR TEST第12页/共48页3.移位操作算术移位4.转移(1)无条件转移 JMP(2)条件转移结果为零转 (Z=1)JZ结果溢出转 (O=1)JO结果有进位转(C=1)JC跳过一条指令 SKP循环移位(带进位和不带进位)如300305306307SKP DZ D=0 则跳逻辑移位完成触发器第13页/共48页(3)调用和返回CALL SUB1.CALL SUB
10、2.CALL SUB2RETURNRETURN.主程序地址200021002101子程序SUB1240025002501256025612700主存空间分配程序执行流程子程序SUB2第14页/共48页IN AX,nOUT DX,ALOUT n,AXOUT DX,AX(4)陷阱(Trap)与陷阱指令意外事故的中断 设置供用户使用的陷阱指令如 8086 INT TYPE 软中断提供给用户使用的陷阱指令,完成系统调用5.输入输出 一般不提供给用户直接使用 在出现事故时,由 CPU 自动产生并执行(隐指令)IN AL,DXIN AX,DX入 端口地址 CPU 的寄存器出 CPU 的寄存器 端口地址如如
11、IN AL,nOUT n,AL?第15页/共48页7.3 7.3 寻寻 址址 方方 式式寻址方式 确定 本条指令 的 操作数地址指令寻址数据寻址下一条 欲执行 指令 的 指令地址第16页/共48页一、指令寻址q 顺序(PC)+1 PCq 跳跃由转移指令指出LDA 1000ADD 1001DEC 1200JMP 7LDA 2000SUB 2001INCSTA 2500LDA 1100.0123456789PC+1指令地址寻址方式指令地址指令顺序寻址1顺序寻址2顺序寻址3跳跃寻址7顺序寻址8第17页/共48页二、数据寻址 形式地址 指令字中的地址 有效地址EA 操作数的真实地址 约定 指令字长=存
12、储字长=机器字长1.立即寻址 指令执行阶段不访存 A 的位数限制了立即数的范围形式地址 A操作码寻址特征OP#A立即寻址特征立即数 可正可负 补码形式地址 A 就是操作数第18页/共48页2.直接寻址EA=A操作数主存寻址特征LDAAAACC 执行阶段访问一次存储器 A 的位数决定了该指令操作数的寻址范围 操作数的地址不易修改(必须修改A)有效地址由形式地址直接给出第19页/共48页3.隐含寻址操作数地址隐含在操作码中ADDA操作数主存寻址特征AACC暂存ALU另一个操作数隐含在 ACC 中如 8086MUL 指令被乘数隐含在 AX(16位)或 AL(8位)中MOVS 指令源操作数的地址隐含在
13、 SI 中目的操作数的地址隐含在 DI 中 指令字中少了一个地址字段,可缩短指令字长第20页/共48页4.间接寻址EA=(A)有效地址由形式地址间接提供OPA寻址特征AEA主存EAA1EA A1主存 EA10 执行指令阶段 2 次访存 可扩大寻址范围 便于编制程序OPA寻址特征A一次间址多次间址操作数操作数多次访存第21页/共48页 子程序主程序8081201202转 子程序转 子程序间接寻址编程举例(A)=81(A)=202 间址特征JMP A 第22页/共48页5.寄存器寻址EA=Ri 执行阶段不访存,只访问寄存器,执行速度快OPRi寻址特征 寄存器个数有限,可缩短指令字长操作数R0RiR
14、n寄存器有效地址即为寄存器编号第23页/共48页EA=(Ri)6.寄存器间接寻址 有效地址在寄存器中,操作数在存储器中,执行阶段访存操作数主存OPRi寻址特征 便于编制循环程序地址R0RiRn寄存器有效地址在寄存器中第24页/共48页7.基址寻址(1)采用专用寄存器作基址寄存器EA=(BR)+ABR 为基址寄存器OPA操作数主存寻址特征ALUBR 可扩大寻址范围 便于程序搬家 BR 内容由操作系统或管理程序确定 在程序的执行过程中 BR 内容不变,形式地址 A 可变第25页/共48页(2)采用通用寄存器作基址寄存器操作数主存寻址特征ALUOPR0AR0 作基址寄存器 由用户指定哪个通用寄存器作
15、为基址寄存器通用寄存器R0Rn-1R1 基址寄存器的内容由操作系统确定 在程序的执行过程中 R0 内容不变,形式地址 A 可变第26页/共48页8.变址寻址EA=(IX)+AOPA操作数主存寻址特征ALUIX 可扩大寻址范围 便于处理数组问题 IX 的内容由用户给定 IX 为变址寄存器(专用)在程序的执行过程中 IX 内容可变,形式地址 A 不变通用寄存器也可以作为变址寄存器第27页/共48页例 设数据块首地址为 D,求 N 个数的平均值直接寻址变址寻址LDA DADD D+1ADD D+2ADD D+(N-1)DIV#NSTA ANSLDA#0LDX#0INXCPX#NBNE MDIV#NS
16、TA ANS共 N+2 条指令共 8 条指令ADD X,DMX 为变址寄存器D 为形式地址(X)和#N 比较(X)+1 X结果不为零则转第28页/共48页9.相对寻址 EA=(PC)+AA 是相对于当前指令的位移量(可正可负,补码)A 的位数决定操作数的寻址范围 程序浮动 广泛用于转移指令操作数寻址特征ALUOPA相对距离 A1000PC主存1000AOP第29页/共48页(1)相对寻址举例M 随程序所在存储空间的位置不同而不同EA=(M+3)3=M 3*LDA#0LDX#0ADD X,DINXCPX#NBNE MDIV#NSTA ANSMM+1M+2M+3而指令 BNE 与 指令 ADD X
17、,D 相对位移量不变 3*指令 BNE操作数的有效地址为 3*相对寻址特征*第30页/共48页(2)按字节寻址的相对寻址举例OP位移量2000 H2008 H8JMP*+8OP06 H2000 H2008 H8设 当前指令地址 PC=2000H转移后的目的地址为 2008H因为 取出 JMP*+8 后 PC=2002H二字节指令故 JMP*+8 指令 的第二字节为 2008H-2002H=6H第31页/共48页10.堆栈寻址(1)堆栈的特点堆栈硬堆栈软堆栈多个寄存器指定的存储空间先进后出(一个入出口)栈顶地址 由 SP 指出 11FFFH+12000 H进栈 (SP)1 SP出栈 (SP)+1
18、 SP栈顶栈底2000 HSP2000 H1FFF HSP1FFFH栈顶栈底进栈出栈 1FFF H 2000 H栈顶栈顶第32页/共48页(2)堆栈寻址举例15200HACCSPX栈顶200H栈底主存151FFHACCSP15栈顶200H栈底主存X1FFHPUSH A 前PUSH A 后POP A 前POP A 后Y1FFHACCSPX栈顶200H栈底主存151FFH15200HACCSP栈顶200H栈底主存X15第33页/共48页(3)SP 的修改与主存编址方法有关 按按 字字 编址编址进栈出栈(SP)1 SP(SP)+1 SP 按按 字节字节 编址编址存储字长 16 位进栈出栈(SP)2
19、SP(SP)+2 SP存储字长 32 位进栈出栈(SP)4 SP(SP)+4 SP第34页/共48页7.4 指令格式举例一、设计指令格式时应考虑的各种因素1.指令系统的 兼容性(向上兼容)2.其他因素操作类型数据类型指令格式包括指令个数及操作的难易程度指令字长、操作码位数寻址方式寄存器个数地址码位数、地址个数寻址方式、是否采用扩展操作码第35页/共48页二、指令格式举例1.PDP 8指令字长固定 12 位操作码 间 页 地址码访存类指令0235411寄存器类指令 1 1 1 辅助操作码02 311I/O 类指令 1 1 0 设备 操作码02 31198第36页/共48页2.PDP 11源地址O
20、P4 6 6 16 16目的地址存储器地址1存储器地址2OP10 6 16目的地址存储器地址目的地址4 6 6源地址OP 10 6目的地址OP CODE16OP CODE指令字长有 16 位、32 位、48 位三种零地址(16 位)一地址(16 位)二地址 R R(16 位)二地址 R M(32 位)二地址 M M(48 位)扩展操作码技术第37页/共48页3.IBM 360OPR1R2 RR格式8 4 4OPR1XBD RX格式8 4 4 4 12OPR1R3BD RS格式8 4 4 4 12OPBDI SI格式8 8 4 12OPB1D1LB2D2 SS格式8 8 4 12 4 12二地址
21、 R R基址加变址寻址二地址 R M三地址 R M基址寻址二地址 M M 基址寻址基址寻址立即数 M第38页/共48页4.Intel 8086(1)指令字长(2)地址格式1 6 个字节MOV WORD PTR0204,0138H 6 字节INC AX 1 字节一地址NOP 1 字节CALL段内调用 3 字节零地址 5 字节段间调用寄存器 寄存器寄存器 立即数寄存器 存储器ADD AX,BX 2 字节ADD AX,3048H 4 字节ADD AX,3048H 3 字节二地址CALL第39页/共48页三、指令格式设计举例(自学!)第40页/共48页7.5 RISC 技 术 一、RISC 的产生和发
22、展 RISC(Reduced Instruction Set Computer)CISC(Complex Instruction Set Computer)第41页/共48页早期早期CISC设计风格的主要特点设计风格的主要特点(1)指令系统复杂指令系统复杂 指令多指令多/寻址方式多寻址方式多/指令格式多指令格式多(2)指令周期长指令周期长 绝大多数指令需要多个时钟周期才能完成绝大多数指令需要多个时钟周期才能完成(3)各种指令都能访问存储器各种指令都能访问存储器 除了专门的存储器读写指令外,运算指令也能访问存储器除了专门的存储器读写指令外,运算指令也能访问存储器 (4)采用微程序控制采用微程序控
23、制 (5)有专用寄存器有专用寄存器 (6)难以进行编译优化来生成高效目标代码难以进行编译优化来生成高效目标代码第42页/共48页CISCCISC的缺陷的缺陷 日趋庞大的指令系统不但使计算机的日趋庞大的指令系统不但使计算机的研制周期变长研制周期变长,而且而且难以保证设计的正确性,难以调试和维护,难以保证设计的正确性,难以调试和维护,并且因指并且因指令操作复杂而令操作复杂而增加机器周期增加机器周期,从而,从而降低了系统性能。降低了系统性能。19751975年年IBMIBM公司开始研究指令系统的合理性问题,公司开始研究指令系统的合理性问题,John CocksJohn Cocks提提出出精简指令系统
24、计算机精简指令系统计算机 RISCRISC(Reduce Instruction Set (Reduce Instruction Set Computer)Computer)。对对CISCCISC进行测试,发现一个进行测试,发现一个事实事实:在程序中各种指令出现的频率悬殊很大,最常使用的是一些在程序中各种指令出现的频率悬殊很大,最常使用的是一些简简单指令,这些指令占程序的单指令,这些指令占程序的80%80%,但只占指令系统的,但只占指令系统的20%20%。而且。而且在微程序控制的计算机中,在微程序控制的计算机中,占指令总数占指令总数20%20%的复杂指令占用了的复杂指令占用了控制存储器容量的控
25、制存储器容量的80%80%。386 386耗资耗资1.51.5亿,开发时间长达三年,正确性很难保证,难亿,开发时间长达三年,正确性很难保证,难以维护,很快淘汰。更值得一提的是以维护,很快淘汰。更值得一提的是IBM1975IBM1975年投资年投资1010亿美元亿美元研制的高速机器研制的高速机器FSFS机,最后以机,最后以“结构复杂不宜构成高速计算机结构复杂不宜构成高速计算机”的结论宣告失败。的结论宣告失败。第43页/共48页Top 10 80 x86 Instructions(简单指令占主要部分,使用频率高!简单指令占主要部分,使用频率高!)back第44页/共48页RISCRISC设计风格的
26、主要特点设计风格的主要特点(1)(1)简化的指令系统简化的指令系统 指令少指令少 /寻址方式少寻址方式少 /指令格式少指令格式少 /指令长度一致指令长度一致(2)(2)以以RRRR方式工作方式工作 除除Load/StoreLoad/Store指令可访问存储器外,其余指令都只访问寄指令可访问存储器外,其余指令都只访问寄存器存器(3)(3)指令周期短指令周期短 以流水线方式工作,以流水线方式工作,因而除因而除Load/StoreLoad/Store指令外,其他简单指令外,其他简单指令都只需一个或一个不到的时钟周期就可完成。指令都只需一个或一个不到的时钟周期就可完成。(4)(4)采用大量通用寄存器,
27、以减少访存次数采用大量通用寄存器,以减少访存次数(5)(5)采用组合逻辑电路控制,不用或少用微程序控制采用组合逻辑电路控制,不用或少用微程序控制(6)(6)采用优化的编译系统,力求有效地支持高级语言程序采用优化的编译系统,力求有效地支持高级语言程序80868086最长指令周期190190(带符号整数除法)平均1212SPARC SPARC 中 3232个6464位通用寄存器3232个浮点寄存器第45页/共48页u19821982年美国加州伯克利大学的年美国加州伯克利大学的RISCRISC,斯坦福,斯坦福大学的大学的MIPSMIPS,IBMIBM公司的公司的IBM801IBM801相继宣告完成,相继宣告完成,这些机器被称为这些机器被称为第一代第一代RISCRISC机机。u8282年以来新的指令集大多采用年以来新的指令集大多采用RISCRISC体系结构体系结构uIntel x86Intel x86因为因为“兼容兼容”的需要,保留了的需要,保留了CISCCISC的风格,同时也借鉴了的风格,同时也借鉴了RISCRISC思想思想 第46页/共48页第47页/共48页感谢您的观看!第48页/共48页
限制150内