您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 计算机组成原理第七章指令系统.
第七章指令系统7.1机器指令7.2操作数类型和操作类型7.3寻址方式7.4指令格式举例7.5RISC技术一、考试范围•(一)指令格式基本格式;定长操作码指令格式;扩展操作码指令格式。•(二)指令的寻址方式有效地址的概念;数据寻址和指令寻址;常见寻址方式。•(三)CISC和RISC的概念2二、复习要点•1)理解指令的基本格式、定长与扩展操作码格式。•2)掌握指令寻址方式的基本概念、常见寻址方式及其有效地址的计算。•3)了解CISC和RISC的基本概念3•指令是指示计算机执行某项运算或处理功能的命令,一台计算机支持的全部指令构成这台计算机的指令系统。指令系统与机器的运行性能、硬件结构的复杂程度和制造成本、使用的方便性等密切相关,是设计一台计算机的基本依据。•指令系统的评价:1)完备性指令齐全,编程方便2)高效性程序占内存空间少,运行速度快3)规则性指令和数据使用规则统一简单,易学易记4)兼容性同一系列机器,程序向上兼容47.1机器指令7.1机器指令一、指令的一般格式操作码字段地址码字段1.操作码反映机器做什么操作(3)扩展操作码技术(1)定长码指令系统中,所有指令OP码长度相等优点:规则性好,编译效率高缺点:指令平均长度长(占空间大,执行速度低)。(2)变长码操作码长度不等(复杂长,简单短)优点:指令平均长度短缺点:规则性差,编译效率低操作码的长度随地址数的减少而增加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.1机器指令2.地址码(1)四地址(2)三地址OPA1A2A3A486666A1第一操作数地址A2第二操作数地址A3结果的地址A4下一条指令地址若PC代替A4(A1)OP(A2)A38888OPA1A2A3(A1)OP(A2)A34次访存4次访存寻址范围26=64寻址范围28=256若A3用A1或A2代替设指令字长为32位操作码固定为8位7.1机器指令(3)二地址OPA1A281212或4次访存若ACC代替A1(或A2)若结果存于ACC(4)一地址(5)零地址OPA1824无地址码(ACC)OP(A1)ACC2次访存寻址范围212=4K寻址范围224=16M3次访存7.1机器指令(A1)OP(A2)A1微型机(A1)OP(A2)A2小型机二、指令字长指令字长决定于操作码的长度指令字长=存储字长2.指令字长可变操作数地址的长度操作数地址的个数1.指令字长固定按字节的倍数变化7.1机器指令8n7.1机器指令举例:1、假设指令字长为16位,操作数的地址码为6位,指令有零地址、一地址、二地址三种格式。(1)设操作码固定,若零地址指令有P种,一地址指令有Q种,则二地址指令有多少种?(2)采用扩展操作码技术,若二地址指令有X种,零地址指令有Y种,则一地址指令最多有几种?解:(1)24-P-Q(2)设一地址指令有Z种,则[(24-X)×26-Z]×26=Y∴Z=(24-X)×26-Y×2-62、某计算机指令字长为16位,采用R-R寻址方式,共有16个寄存器,指令系统有三地址、二地址、一地址及零地址指令,采用扩展操作码技术设计指令系统。7.1机器指令12OPA1A2A34位4位4位4位OP…15条三地址指令0000XXXXYYYYZZZZ1110XXXXYYYYZZZZ1111…15条二地址指令11110000XXXXYYYY11111110XXXXYYYY11111111…15条一地址指令111111110000XXXX111111111110XXXX111111111111…16条零地址指令11111111111100001111111111111111扩展标志扩展标志扩展标志OPA1A2OPA1指令操作码扩展17.1机器指令13指令操作码扩展2:0000XXXXYYYYZZZZ1110XXXXYYYYZZZZ111111100000XXXX111111101111XXXX1111111111110000111111111111111116条零地址指令11110000XXXXYYYY11111101XXXXYYYY111111110000XXXX111111111110XXXX15条三地址指令14条二地址指令16条一地址指令15条一地址指令317.1机器指令7.2操作数类型和操作种类一、操作数类型地址数字字符逻辑数无符号整数定点数、浮点数、十进制数ASCII逻辑运算二、数据在存储器中的存放方式字地址为低字节地址字地址为高字节地址37621540字地址04低字节04512673字地址04低字节(小端方式)(大端方式)154字节32位存储器字地址0字地址4半字地址8半字地址10半字地址12字节地址15半字地址22字节地址14字节地址19字节地址18字节地址16字节地址17字节地址20字节地址21地址048121620在数据对准边界存储的计算机中,对于以二进制表示的存储地址来说,半字地址的最低位、字地址的最低两位和双字地址的最低三位恒为零。这种方式的整个字的存储时间要短,需要1个存储周期。按字存储时有大端和小端二种排放格式。即高字节内容放在高字节地址中为小端模式。存储器中的数据存放(存储字长为32位)7.2操作数类型和操作种类1632位、4个字节地址048字节半字的一半一字的3/4半字有的计算机不要求对准边界存储数据,如下图所示,但这种方式增加硬件的复杂程度,并且有可能导致访问次数增加。例如存储一个字,则需要2个存储周期。半字另一半一字的1/4半字7.2操作数类型和操作种类三、操作类型1.数据传送源目的寄存器寄存器寄存器寄存器存储器存储器存储器存储器置“1”,清“0”2.算术逻辑操作加、减、乘、除、增1、减1、求补、浮点运算、十进制运算与、或、非、异或、位操作、位测试、位清除、位求反如8086MOVESTORELOADMOVEPUSHPOP例如MOVEMOVEADDSUBMULDIVINCDECCMPNEGAAAAASAAMAADANDORNOTXORTEST7.2操作数类型和操作种类3.移位操作算术移位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.2操作数类型和操作种类INAX,nOUTDX,ALOUTn,AXOUTDX,AX(4)陷阱(Trap)与陷阱指令意外事故的中断•设置供用户使用的陷阱指令如8086INTTYPE软中断提供给用户使用的陷阱指令,完成系统调用5.输入输出•一般不提供给用户直接使用在出现事故时,由CPU自动产生并执行(隐指令)INAL,DXINAX,DX入端口地址CPU的寄存器出CPU的寄存器端口地址如如INAL,nOUTn,AL7.2操作数类型和操作种类7.3寻址方式寻址方式确定本条指令的操作数地址下一条欲执行指令的指令地址指令寻址数据寻址寻址方式一、指令寻址顺序(PC)+1PC跳跃由转移指令指出LDA1000ADD1001DEC1200JMP7LDA2000SUB2001INCSTA2500LDA1100...0123456789PC+1指令地址寻址方式指令地址指令顺序寻址1顺序寻址2顺序寻址3跳跃寻址7顺序寻址87.3寻址方式二、数据寻址形式地址指令字中的地址有效地址操作数的真实地址约定指令字长=存储字长=机器字长1.立即寻址•指令执行阶段不访存•A的位数限制了立即数的范围形式地址A操作码寻址特征OP#A立即寻址特征立即数可正可负补码形式地址A就是操作数7.3寻址方式2.直接寻址EA=A操作数主存寻址特征LDAAAACC•执行阶段访问一次存储器•A的位数决定了该指令操作数的寻址范围•操作数的地址不易修改(必须修改A)有效地址由形式地址直接给出7.3寻址方式3.隐含寻址操作数地址隐含在操作码中ADDA操作数主存寻址特征AACC暂存ALU另一个操作数隐含在ACC中如8086MUL指令被乘数隐含在AX(16位)或AL(8位)中MOVS指令源操作数的地址隐含在SI中目的操作数的地址隐含在DI中•指令字中少了一个地址字段,可缩短指令字长7.3寻址方式4.间接寻址EA=(A)有效地址由形式地址间接提供OPA寻址特征AEA主存EAA1EAA1主存EA10•执行指令阶段2次访存•可扩大寻址范围•便于编制程序OPA寻址特征A一次间址多次间址操作数操作数多次访存7.3寻址方式………子程序主程序…8081201202转子程序转子程序间接寻址编程举例(A)=81(A)=202……@间址特征JMP@A…………………………7.3寻址方式5.寄存器寻址EA=Ri•执行阶段不访存,只访问寄存器,执行速度快OPRi寻址特征•寄存器个数有限,可缩短指令字长操作数………………R0RiRn寄存器有效地址即为寄存器编号7.3寻址方式EA=(Ri)6.寄存器间接寻址•有效地址在寄存器中,操作数在存储器中,执行阶段访存操作数主存OPRi寻址特征•便于编制循环程序地址………………R0RiRn寄存器有效地址在寄存器中7.3寻址方式7.基址寻址(1)采用专用寄存器作基址寄存器EA=(BR)+ABR为基址寄存器OPA操作数主存寻址特征ALUBR•可扩大寻址范围•便于程序搬家•BR内容由操作系统或管理程序确定•在程序的执行过程中BR内容不变,形式地址A可变7.3寻址方式(2)采用通用寄存器作基址寄存器操作数主存寻址特征ALUOPR0AR0作基址寄存器•由用户指定哪个通用寄存器作为基址寄存器通用寄存器R0Rn-1R1…•基址寄存器的内容由操作系统确定•在程序的执行过程中R0内容不变,形式地址A可变7.3寻址方式8.变址寻址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.3寻址方式9.相对寻址EA=(PC)+AA是相对于当前指令的位移量(可正可负,补码)•A的位数决定操作数的寻址范围•程序浮动•广泛用于转移指令操作数寻址特征ALUOPA相对距离A1000PC……主存1000AOP7.3寻址方式(1)相对寻址举例M随程序所在存储空间的位置不同而不同EA=(M+3)–3=M–3*LDA#0LDX#0ADDX,DINXCPX#NBNEMDIV#NSTAANSMM+1M+2M+3而指令BNE与指令ADDX,D相对位移量不变–3*指令BNE操作数的有效地址为–3*相对寻址特征*7.3寻址方式(2)按字节寻址的相对寻址举例OP位移量2000H2008H8JMP*+8OP06H2000H2008H8设当前指令地址PC=2000H转移后的目的地址为2008H因为取出JMP*+8后PC=2002H二字节指令故JMP
本文标题:计算机组成原理第七章指令系统.
链接地址:https://www.777doc.com/doc-4049599 .html