计算机组成原理第07章_第1页
计算机组成原理第07章_第2页
计算机组成原理第07章_第3页
计算机组成原理第07章_第4页
计算机组成原理第07章_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

第七章指令系统7.1机器指令7.2操作数类型和操作类型7.3寻址方式7.4指令格式举例7.5RISC技术教学目标:旨在使学生了解指令系统与机器的主要功能以及与硬件结构之间存在的密切关系。重点:指令系统主要体现(操作类型、数据类型、地址格式和寻址方式);机器指令一般格式及指令字中各字段的作用;地址格式对访存次数及寻址范围的影响;寻址方式对操作数寻址范围等的影响;RISC的主要特点及与CISC的区别。难点:掌握设计指令格式的方法,学会根据指令系统要求确定指令字中各字段的位数及其含义;扩展操作码;按字节和字寻址;“边界对准”和“边界不对准”。7.1机器指令一、指令的一般格式操作码字段

地址码字段1.操作码反映机器做什么操作(1)长度固定(2)长度可变用于指令字长较长的情况,RISC如IBM370操作码8位操作码分散在指令字的不同字段中(3)扩展操作码技术操作码的位数随地址数的减少而增加OPA1A2A3000000011110…A1A1A1…A2A2A2…A3A3A3…A2A2A2…A3A3A3…111111111111…000000011110…111111111111…111111111111…111111111111…000000011111…111111111111…111111111111…A3A3A3…000000011110…4位操作码8位操作码12位操作码16位操作码15条三地址指令15条二地址指令15条一地址指令16条零地址指令7.12.地址码(1)四地址(2)三地址OPA1A2A3A486666A1

第一操作数地址A2

第二操作数地址A3

结果的地址A4

下一条指令地址若PC代替A4(A1)OP(A2)A38888OPA1A2A3(A1)OP(A2)A34次访存4次访存寻址范围26=64寻址范围28=256若A3用A1或A2代替7.1设指令字长为32位操作码固定为8位(3)二地址OPA1A281212(A1)OP(A2)A1(A1)OP(A2)A2或4次访存若ACC代替A1(或A2)若结果存于ACC(4)一地址(5)零地址OPA1824无地址码(ACC)OP(A1)ACC2次访存寻址范围212=4K寻址范围224=16M3次访存7.1二、指令字长指令字长决定于操作码的长度指令字长=存储字长2.指令字长可变操作数地址的长度操作数地址的个数1.指令字长固定按字节的倍数变化7.1小结当用一些硬件资源代替指令字中的地址码字段后当指令的地址字段为寄存器时可扩大指令的寻址范围可缩短指令字长可减少访存次数三地址OPR1,

R2,R3二地址OPR1,R2

一地址OPR1

指令执行阶段不访存可缩短指令字长7.17.2操作数类型和操作种类一、操作数类型地址数字字符逻辑数无符号整数定点数、浮点数、十进制数ASCII逻辑运算二、数据在存储器中的存放方式字地址为低字节地址字地址为高字节地址37621540字地址04低字节04512673字地址04低字节存储器中的数据存放(存储字长为

32

位)地址(十进制)04812162024283236双字双字(地址32)双字双字(地址24)半字(地址20)半字(地址22)半字(地址16)半字(地址18)字节(地址8)字节(地址9)字节(地址10)字节(地址11)字(地址4)字(地址0)字节(地址14)字节(地址15)字节(地址13)字节(地址12)边界对准地址(十进制)048字节(地址7)字节(地址6)字(地址2)半字(地址10)半字(地址8)半字(地址0)字(地址4)边界未对准

7.2三、操作类型1.

数据传送源目的寄存器寄存器寄存器寄存器存储器存储器存储器存储器置“1”,清“0”2.算术逻辑操作加、减、乘、除、增1、减1、求补、浮点运算、十进制运算与、或、非、异或、位操作、位测试、位清除、位求反如8086MOVESTORELOADMOVEPUSHPOP例如MOVEMOVE7.2ADDSUBMULDIVINCDECCMPNEGAAAAASAAMAADANDORNOTXORTEST3.移位操作算术移位4.转移(1)无条件转移JMP(2)条件转移结果为零转(Z=1)

JZ结果溢出转(O=1)JO结果有进位转(C=1)JC跳过一条指令SKP循环移位(带进位和不带进位)如300…305306307SKPDZD=0则跳逻辑移位完成触发器7.2(3)调用和返回CALLSUB1.........CALLSUB2…...CALLSUB2…RETURNRETURN......主程序地址200021002101子程序SUB1240025002501256025612700主存空间分配程序执行流程子程序SUB27.2INAX,nOUTDX,ALOUTn,AXOUTDX,AX(4)陷阱(Trap)与陷阱指令意外事故的中断设置供用户使用的陷阱指令如8086INTTYPE软中断提供给用户使用的陷阱指令,完成系统调用5.输入输出一般不提供给用户直接使用

在出现事故时,由CPU自动产生并执行(隐指令)INAL,DXINAX,DX入端口地址CPU的寄存器出CPU的寄存器端口地址7.2如如INAL,nOUTn,AL7.3寻址方式寻址方式

确定本条指令的操作数地址下一条欲执行指令的指令地址指令寻址数据寻址寻址方式7.3寻址方式一、指令寻址顺序(PC)+1PC跳跃由转移指令指出LDA1000ADD1001DEC1200JMP7LDA2000SUB2001INCSTA2500LDA1100...0123456789PC+1指令地址寻址方式指令地址指令顺序寻址1顺序寻址2顺序寻址3跳跃寻址7顺序寻址8二、数据寻址形式地址指令字中的地址有效地址操作数的真实地址约定

指令字长=存储字长=机器字长1.立即寻址指令执行阶段不访存

A的位数限制了立即数的范围形式地址A操作码寻址特征OP#A立即寻址特征立即数可正可负补码形式地址A就是操作数7.32.直接寻址EA=A操作数主存寻址特征LDAAAACC执行阶段访问一次存储器

A的位数决定了该指令操作数的寻址范围操作数的地址不易修改(必须修改A)有效地址由形式地址直接给出7.33.隐含寻址操作数地址隐含在操作码中ADDA操作数主存寻址特征AACC暂存ALU另一个操作数隐含在ACC中如8086MUL指令被乘数隐含在AX(16位)或AL(8位)中MOVS指令源操作数的地址隐含在SI中目的操作数的地址隐含在DI中指令字中少了一个地址字段,可缩短指令字长7.34.间接寻址EA=(A)有效地址由形式地址间接提供OPA寻址特征AEA主存EAA1EAA1主存EA10执行指令阶段2次访存可扩大寻址范围便于编制程序OPA寻址特征A一次间址多次间址操作数操作数多次访存7.3………子程序主程序…8081201202转子程序转子程序间接寻址编程举例(A)=81(A)=202……@间址特征7.3JMP@A…

……………

…………5.寄存器寻址EA=Ri执行阶段不访存,只访问寄存器,执行速度快OPRi寻址特征寄存器个数有限,可缩短指令字长操作数………………R0RiRn寄存器有效地址即为寄存器编号7.3EA=(Ri

)6.寄存器间接寻址

有效地址在寄存器中,操作数在存储器中,执行阶段访存操作数主存OPRi寻址特征

便于编制循环程序地址………………R0RiRn寄存器有效地址在寄存器中7.37.基址寻址(1)采用专用寄存器作基址寄存器EA=(BR)+ABR为基址寄存器OPA操作数主存寻址特征ALUBR

可扩大寻址范围

便于程序搬家

BR内容由操作系统或管理程序确定

在程序的执行过程中BR内容不变,形式地址A可变7.3(2)

采用通用寄存器作基址寄存器操作数主存寻址特征ALUOPR0AR0

作基址寄存器由用户指定哪个通用寄存器作为基址寄存器通用寄存器R0Rn-1R1…基址寄存器的内容由操作系统确定在程序的执行过程中R0内容不变,形式地址A可变7.38.变址寻址EA=(IX)+AOPA操作数主存寻址特征ALUIX可扩大寻址范围便于处理数组问题

IX的内容由用户给定IX为变址寄存器(专用)在程序的执行过程中IX内容可变,形式地址A不变通用寄存器也可以作为变址寄存器7.3例设数据块首地址为D,求N

个数的平均值直接寻址变址寻址LDADADDD+1ADDD+2……ADDD+(N-1)DIV#NSTAANSLDA#0LDX#0INXCPX#NBNEMDIV#NSTAANS共N+2

条指令共8条指令ADDX,DMX为变址寄存器D为形式地址(X)和#N

比较(X)+1X结果不为零则转7.39.相对寻址EA=(PC)+AA是相对于当前指令的位移量(可正可负,补码)A的位数决定操作数的寻址范围程序浮动

广泛用于转移指令操作数寻址特征ALUOPA相对距离A1000PC……主存1000AOP7.3(1)相对寻址举例M

随程序所在存储空间的位置不同而不同EA=(M+3)–3=M–3*LDA#0LDX#0ADDX,DINXCPX#NBNE

MDIV#NSTAANSMM+1M+2M+3而指令BNE

与指令ADDX,D

相对位移量不变–3*

指令BNE操作数的有效地址为–3*

相对寻址特征*7.3(2)按字节寻址的相对寻址举例OP位移量2000H2008H8JMP*+8OP06H2000H2008H8设当前指令地址PC=2000H转移后的目的地址为

2008H因为取出JMP

*+8

后PC=2002H二字节指令故JMP

*+8

指令的第二字节为2008H-2002H=6H7.310.堆栈寻址(1)堆栈的特点堆栈硬堆栈软堆栈多个寄存器指定的存储空间先进后出(一个入出口)栈顶地址由SP

指出–11FFFH+12000H进栈(SP)–1SP出栈(SP)+1SP栈顶栈底2000HSP2000H……1FFFHSP1FFFH栈顶栈底进栈出栈1FFFH栈顶2000H栈顶7.3(2)堆栈寻址举例15200HACCSPX栈顶200H栈底主存151FFHACCSP15栈顶200H栈底主存X1FFHPUSHA前PUSHA后POPA前POPA后Y1FFHACCSPX栈顶200H栈底主存151FFH15200HACCSP栈顶200H栈底主存X157.3(3)SP的修改与主存编址方法有关①按字编址进栈出栈(SP)–1SP(SP)+1SP②按字节编址存储字长16位进栈出栈(SP)–2SP(SP)+2SP存储字长32位进栈出栈(SP)–4SP(SP)+4SP7.37.4指令格式举例一、设计指令格式时应考虑的各种因素1.指令系统的兼容性(向上兼容)2.其他因素操作类型数据类型指令格式包括指令个数及操作的难易程度指令字长、操作码位数寻址方式寄存器个数地址码位数、地址个数寻址方式、是否采用扩展操作码二、指令格式举例1.PDP–8指令字长固定12位操作码间

页地址码访存类指令0235411寄存器类指令111辅助操作码02311I/O类指令110设备操作码02311987.42.PDP–11源地址OP4661616目的地址存储器地址1存储器地址2OP10616目的地址存储器地址目的地址466源地址OP106目的地址OP–CODE16OP–CODE指令字长有16位、32位、48位三种零地址(16位)一地址(16位)二地址RR(16位)二地址RM(32位)二地址MM(48位)扩展操作码技术7.43.IBM360OPR1R2RR格式844OPR1XBDRX格式844412OPR1R3BDRS格式844412OPBDISI格式88412OPB1D1LB2D2SS格式88412412二地址RR基址加变址寻址二地址RM三地址RM基址寻址二地址MM基址寻址基址寻址立即数M7.44.Intel8086(1)指令字长(2)地址格式1~6个字节MOVWORDPTR[0204],0138H6字节INCAX1字节一地址NOP1字节CALL段内调用3字节零地址5字节段间调用寄存器—寄存器寄存器—立即数寄存器—存储器ADDAX,BX2字节ADDAX,[3048H]4字节ADDAX,3048H

3字节二地址CALL7.47.5RISC技术一、RISC的产生和发展

80—20规律

典型程序中80%的语句仅仅使用处理机中20%的指令

执行频度高的简单指令,因复杂指令的存在,执行速度无法提高RISC(ReducedInstructionSetComputer)CISC(ComplexInstructionSetComputer)——RISC技术

能否用20%的简单指令组合不常用的80%的指令功能?二、RISC的主要特征

选用使用频率较高的一些简单指令复杂指令的功能由简单指令来组合

指令长度固定

只有LOAD/STORE

指令访存

流水技术一个时钟周期内完成一条指令

组合逻辑实现控制器

多个通用寄存器

采用优化的编译程序

7.5典型例题:7.2什么叫寻址方式?为什么要学习寻址方式?

7.3什么叫指令字长、机器字长和存储字长?7.4零地址指令的操作数来自哪里?在一地址指令中,另一个操作数的地址通常可采用什么寻址方式获得?各举一例说明。7.6某指令系统字长为16位,地址码取4位,试提出一种方案,使该指令系统有8条三地址指令、16条二地址指令、100条一地址指令。典型例题:7.7设指令系统字长为16位,采用扩展操作码技术,每个操作数的地址为6位。如果定义了13条二地址指令,试问还可安排多少条一地址指令。7.9试比较间接寻址和寄存器间接寻址。7.10试比较基址寻址和变址寻址。7.12画出“SUB@R1”指令对操作数的寻址及减法过程中的流程图。设被减数和结果存于ACC中,@表示间接寻址,R1寄存器内容为2074H。

典型例题:7.14设相对寻址的转移指令占两个字节,第一个字节是操作码,第二个字节是相对位移量,用补码表示。假设当前转移指令第一字节所在的地址为2000H,且CPU每取出一个字节便自动完成(PC)+1→PC的操作。试问当执行“JMP*+8”和“JMP*-9”指令时,转移指令第二字节的内容各为多少?

典型例题:7.16某机主存容量为4M×16位,且存储字长等于指令字长,若该机指令系统可完成108种操作,操作码位数固定,且具有直接、间接、变址、基址、相对、立即等六种寻址方式,试回答以下问题。(1)画出一地址指令格式并指出各字段的作用。(2)该指令直接寻址的最大范围。(3)一次间接寻址和多次间接寻址的寻址范围。(4)立即数的范围(十进制表示)。(5)相对寻址的位移量(十进制表示)。(6)上述六种寻址方式的指令中哪一种执行时间最短,哪一种最长,为什么?哪一种便于程序浮动,哪一种最适合处理数组问题?……典型例题:7.17举例说明哪几种寻址方式在指令的执行阶段不访问存储器,哪几种寻址方式在指令的执行阶段只需要访问一次存储器?完成什么样的指令,包括取指令在内共访问存储器4次?7.18某机器共能完成78种操作,若指令字长为16位,试问一地址格式的指令地址码可取几位?若想使指令寻址范围扩大到216,可采用什么方法?举出三种不同例子加以说明。达标练习:1.以下四种类型指令中,执行时间最长的是_____。A.RR型B.RS型C.SS型D.程序控制指令答案:C2.设变址寄存器为X,形式地址为D,(X)表示寄存器X的内容,这种寻址方式的有效地址为_____。A.EA=(X)+DB.EA=(X)+(D)C.EA=((X)+D)D.EA=((X)+(D))答案:A达标练习:3.在指令的地址字段中,直接指出操作数本身的寻址方式,称为______。A.隐含寻址B.立即寻址C.寄存器寻址D.直接寻址答案:B4.条件转移、无条件转移、转子程序、返主程序、中断返回指令都属于A.______类指令,这类指令在指令格式中所表示的地址不是B.______的地址,而是C.______的地址。

答案:A.程序控制B.操作数C.下一条指令

达标练习:5.若机器字长36位,采用三地址格式访存指令,共完成54种操作,操作数可在1K地址范围内寻找,画出该机器的指令格式。解:达标练习:6.举例说明存储器堆栈的原理及入栈、出栈的过程。答案:所谓存储器堆栈,是把存储器的一部分用作堆栈区。入栈操作可描述为(A)→MSP,(SP-1)→SP出栈操作可描述为(SP+1)→SP,(MSP)→A达标练习:7.堆栈寻址方式中,设A为累加器,SP为堆栈指示器,MSP为SP指示的栈顶单元。如果进栈操作的动作顺序是(A)→MSP,(SP)-1→SP。那么出栈操作的动作顺序应为______。A.(MSP)→A,(SP)+1→SPB.(SP)+1→SP,(MSP)→AC.(SP-1)→SP,(MSP)→AD.(MSP)→A,(SP)-1→SP答案:B达标练习:8.某机指令格式如图所示:图中X为寻址特征位,且X=0时,不变址;X=1时,用变址寄存器X1进行变址;X=2时,用变址寄存器X2进行变址;X=3时,相对寻址。设(PC)=1234H,(X1)=0037H,(X2)=1122H,请确定下列指令的有效地址(均用十六进制表示,H表示十六进制)(1)4420H(2)2244H(3)1322H(4)3521H(5)6723H答案:

(1)0020H(2)1166H(3)1256H(4)0058H(5)1257H

达标练习:9.用于对某个存储器中操作数的寻址方式称为______寻址。A.直接B.间接C.寄存器直接D.寄存器间接答案:C10.程序控制类指令的功能______。A.进行算术运算和逻辑运算B.进行主存和CPU之间的数据传送C.进行CPU和I/O设备之间的数据传送D.改变程序执行的顺序答案:D达标练习:11.指令格式是指令用A.______表示的结构形式,通常格式中由操作码字段和B.______字段组成。答案:A.二进制代码B.地址码

12.RISC机器一定是A._______CPU,但后者不一定是RISC机器,奔腾机属于B.______机器。答

温馨提示

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

评论

0/150

提交评论