版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十三讲指令系统本讲主要内容机器指令系统概述操作数类型和操作类型寻址方式指令格式举例RISC技术机器指令构成及指令编码本讲将解决的主要问题2、指令是如何构成?3、为什么指令要这样构成?1、指令是干什么的?4、指令系统及指令系统的演化过程如何?一、指令概述•用计算机解题时,一般都要编制程序,程序既可用高级语言编写,亦可用机器语言编写;但计算机只能够识别和执行用机器语言编写的程序;•各种高级语言编写的应用程序,最终都要翻译成机器语言来执行。•
机器语言是由一系列的指令(语句)组成的;•指令的格式就是机器语言的语法;•每条指令规定机器完成一定的功能。1、指令系统的发展从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏指令之分。微指令是微程序级的命令,它属于硬件;宏指令是由若干条机器指令组成的软件指令,它属于软件;机器指令则介于微指令与宏指令之间,通常简称为指令,每一条指令可完成一个独立的算术运算或逻辑运算操作。本章所讨论的指令,是机器指令。一台计算机的所有的指令集合称为该机的指令系统或指令集。它是程序工作者编制程序的基本依据,也是进行计算机逻辑设计的基本依据。2、对指令系统的要求完备性:完备性是指用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现。完备性要求指令系统丰富、功能齐全、使用方便。有效性:是指利用该指令系统所编写的程序能够高效率地运行。高效率主要表现在程序占据存储空间小、执行速度快。一般来说,一个功能更强、更完善的指令系统,必定有更好的有效性。
规整性:包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。
兼容性:系列机各机种之间具有相同的基本结构和共同的基本指令集,因而指令系统是兼容的,即各机种上基本软件可以通用。3、低级语言与硬件的关系计算机语言有高级语言和低级语言之分。高级语言如C,FORTRAN等,其语句和用法与具体机器的指令系统无关。低级语言分机器语言(二进制语言)和汇编语言(符号语言),这两种语言都是面向机器的语言,它们和具体机器的指令系统密切相关。一条指令应包含如下信息:进行何种操作:即操作性质。体现在指令中被称为操作码。操作的对象:数据来源以及如何寻找操作数。体现在指令中被称为地址码操作结果:结果存放在何处。下一条指令又如何寻找?二、机器指令格式(一)、指令的一般格式操作码字段
地址码字段1.操作码反映机器做什么操作操作码所占的二进制位数决定了一台计算机所能允许的指令条数。例如,操作码占用六位二进制码时,这台计算机最多允许有:
26=64条指令
固定长度操作码是指操作码所占的二进制位数固定不变,而且集中放在指令字的一个字段中。这种格式有利于简化硬件设计,减少指令译码时间,广泛用于字长较长的大、中型计算机和超级小型计算机中。例如IBM370和VAX﹣11系列机中,操作码的长度都是8位,可表示256条指令。
(2)可变长度操作码可变长度操作码是操作码扩展技术的应用,即操作码的长度是可变的,且分散地放在指令的不同字段中。这种格式有利于压缩程序中操作码的平均长度,在字长较短的微型机中被广泛应用。如:PDP-11,INTEL8086/80386等,其操作码的长度均是可变的。(1)固定长度操作码操作码字段分两种:
下图是一种扩展操作码的安排示意。
这是一个16位字长的指令码,包括4位基本操作码字段和三个4位长的地址字段。4位基本操作码,若全部用于三地址指令,则有16条。
显然,4位基本操作码是不够的,必须向地址码字段扩展操作作码的长度。其扩展方法及步骤如下:
OP
A1
A2
A3
4位4位4位4位①15条三地址指令的操作码由4位基本操作码0000~1110所给定,剩下一个1111则用于把操作码扩展到X地址码字段,即由4位扩展到8位; ②
14条二地址指令的操作码由8位操作码的1111,0000~1101给定,剩下的1111,1110和1111,1111又可用于把操作码扩充到Y地址字段,即从8位又扩充到12位;
③
31条一地址指令的操作码由12位操作码的
1111,1110,0000~1111,1111,1110给定。
由此类堆,还可以把剩下的1111,1111,1111扩充到Z地址码字段而形成的16位操作码,这时还可由1111,1111,1111,0000~1111,1111,1111,1111给出16条零地址指令。
除了这种安排外,还有多种其它安排方法。如:形成15条三地址指令,12条二地址指令,31条一地址指令,16条零地址指令,共74条指令。实际的机器可以采用各种灵活的扩展方式,其思路与此类似。
11111111000011111111
1111000111111111
1111
111116零(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条零地址指令(3)扩展操作码技术操作码的位数随地址数的减少而增加OPA1A2A3000000011110…A1A1A1…A2A2A2…A3A3A3…A2A2A2…A3A3A3…111111111111…000000011110…111111111111…111111111111…111111111111…000000011111…111111111111…111111111111…A3A3A3…000000011110…4位操作码8位操作码12位操作码16位操作码三地址指令操作码每减少一种可多构成24种二地址指令二地址指令操作码每减少一种可多构成24
种一地址指令
上述方法是在不增加指令长度的情况下,采用对地址少的指令使用较长的操作码,对地址数多的指令使用较短的操作码。其实质是增加了指令的数量,丰富了指令的功能。
在可变长操作码的指令系统设计中,究竟使用何种扩展方法为好,指令的使用频度(即在程序中出现的概率)是非常重要的依据。即频度高的指令应分配短的操作码,频度低的指令则分配较长的操作码。这样,既可有效地缩短操作码在程序中的平均长度,节省存储空间,又可缩短常用指令的译码时间以提高程序的运行速度。
其缺点是译码系统比固定操作码复杂,增加了设计控制器的难度,需要更多的硬件作支持。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代替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.13.指令字长度与机器字长度的关系
机器字长度简称字长,指计算机能直接处理的二进制数据的位数。字长是计算机中的一项重要技术指标,字长越长,计算机的运算精度越高;
字长还能反映指令的直接寻址能力,若字长n位全用来寻址,可直接寻址2n个字节。为了便于处理字符数据及尽可能地利用存储空间,一般把机器字长定为字节长度(8位)的整数倍,即是8位、16位、32位或64位。微型、小型机的字长多为8位、16位和32位,中、大型机的字长多为32位和64位。因此,一个字中可以存储1个、2个、4个或8个字符。(1)机器字长指令字的长度取决于操作码的长度、操作数地址的长度和操作数地址的个数。由于操作码的长度、操作数地址的长度以及所采用操作数地址数目不同,各种指令的长度不是固定的,当然也不是任意的。为了充分利用存储空间,指令字的长度也定为字节长度的整数倍。例如INTEL8086/80586系列机的指令长度分别为8位、16位、24位、32位、48位等。而最长的指令可达120位。(2)指令字长(3)指令字长与机器字长的关系指令字长度与机器字长度没有固定的关系,它可以等于机器字长,也可以大于或小于机器字长。指令字长度等于机器字长度的指令,称为单字长指令;指令字长等于两个机器字长的指令,称为双字长指令;指令字长度只有半个机器字长度的指令,称为半字长指令。例如IBM370系列机的机器字长为32位,它却有16位的半字长指令、32位的单字长指令、48位的一个半字长指令。等字长指令结构在同一个指令系统中,所有的指令字长度都是相等的,称为等字长指令字结构,这种指令字结构简单,控制方便;变字长指令结构如果各种指令字长度随指令的功能而变化,如有的指令是单字长指令,有的指令是双字长指令或三字长指令,则称为变字长指令结构,这种指令字结构灵活,能充分利用指令字长度,但指令的控制较复杂。各种指令字的结构情况地址
II+1I+2I+3指令指令指令指令┆一个字长┆┆指令指令指令指令地址
II+1I+2I+3一个字长指令指令指令指令┆地址
II+1I+2I+3
指令1
指令2一个字长┆单字长指令双字长指令半字长指令变字长指令指令3一个字长地址II+1I+2I+3I+4I+5I+6指令1指令2┆小结当用一些硬件资源代替指令字中的地址码字段后当指令的地址字段为寄存器时可扩大指令的寻址范围可缩短指令字长可减少访存次数三地址OPR1,
R2,R3二地址OPR1,R2
一地址OPR1
指令执行阶段不访存可缩短指令字长4.指令助记符
由于硬件只能识别1和0,所以采用二进制操作码是必要的,但是我们用二进制来书写程序却非常麻烦。为了便于书写和阅读程序,每条指令通常用3个或4个英文缩写字母来表示。这种缩写码叫做指令助记符。
典型指令
指令助记符
二进制操作码
加法
ADD
001
减法
SUB
010
传送
MOV
011
跳转
JMP
100
转子
JSR
101
存储
STR
110
读数
LDA
111典型的指令助记符例指令格式如下所示,其中OP为操作码,试分析指令格式的特点。
OP
--------
源寄存器
目标寄存器15
9
7
43
0解:
(1)单字长二地址指令。
(2)操作码字段OP可以指定128条指令。
(3)源寄存器和目标寄存器都是通用寄存器(可分别指定16个),所以是RR型指令,两个操作数均在寄存器中。
(4)这种指令结构常用于算术逻辑运算类指令。例指令格式如下所示,OP为操作码字段,试分析指令格式特点。
OP
-----------
源寄存器
变址寄存器
位移量(16位)15
10
7
43
0解:
(1)双字长二地址指令,用于访问存储器。
(2)操作码字段OP为6位,可以指定64种操作。
(3)一个操作数在源寄存器(共16个),另一个操作数在存储器中(由变址寄存器和位移量决定),所以是RS型指令。二、操作数类型和操作种类一、操作数类型地址数字字符逻辑数无符号整数定点数、浮点数、十进制数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)边界未对准
▲
▲
三、操作类型1.
数据传送源目的寄存器寄存器寄存器寄存器存储器存储器存储器存储器置“1”,清“0”2.算术逻辑操作加、减、乘、除、增1、减1、求补、浮点运算、十进制运算与、或、非、异或、位操作、位测试、位清除、位求反如8086MOVESTORELOADMOVEPUSHPOP例如MOVEMOVEADDSUBMULDIVINCDECCMPNEGAAAAASAAMAADANDORNOTXORTEST3.移位操作算术移位4.转移(1)无条件转移JMP(2)条件转移结果为零转(Z=1)
JZ结果溢出转(O=1)JO结果有进位转(C=1)JC跳过一条指令SKP循环移位(带进位和不带进位)如300…305306307SKPDZD=0则跳逻辑移位完成触发器(3)调用和返回CALLSUB1......CALLSUB2…...CALLSUB2…RETURNRETURN主程序地址200021002101子程序SUB1240025002501256025612700主存空间分配程序执行流程子程序SUB2...INAX,nOUTDX,ALOUTn,AXOUTDX,AX(4)陷阱(Trap)与陷阱指令意外事故的中断设置供用户使用的陷阱指令如8086INTTYPE软中断提供给用户使用的陷阱指令,完成系统调用5.输入输出一般不提供给用户直接使用
在出现事故时,由CPU自动产生并执行(隐指令)INAL,DXINAX,DX入端口地址CPU的寄存器出CPU的寄存器端口地址如如INAL,nOUTn,AL三、
寻址方式寻址方式
确定本条指令的操作数地址下一条欲执行指令的指令地址指令寻址数据寻址寻址方式在存储器中,操作数或指令字写入或读出的方式,有地址指定方式、相联存储方式和堆栈存取方式。几乎所有的计算机,在内存中都采用地址指定方式当采用地址指定方式时,形成操作数或指令地址的方式,称为寻址方式。(一)、指令寻址顺序(PC)+1PC跳跃由转移指令指出LDA1000ADD1001DEC1200JMP7LDA2000SUB2001INCSTA2500LDA1100...0123456789PC+1指令地址寻址方式指令地址指令顺序寻址1顺序寻址2顺序寻址3跳跃寻址7顺序寻址8二、数据寻址形式地址指令字中的地址有效地址操作数的真实地址约定
指令字长=存储字长=机器字长1.立即寻址指令执行阶段不访存
A的位数限制了立即数的范围形式地址A操作码寻址特征OP#A立即寻址特征立即数可正可负补码形式地址A就是操作数2.直接寻址EA=A操作数主存寻址特征LDAAAACC执行阶段访问一次存储器
A的位数决定了该指令操作数的寻址范围操作数的地址不易修改(必须修改A)有效地址由形式地址直接给出3.隐含寻址操作数地址隐含在操作码中ADDA操作数主存寻址特征AACC暂存ALU另一个操作数隐含在ACC中如8086MUL指令被乘数隐含在AX(16位)或AL(8位)中MOVS指令源操作数的地址隐含在SI中目的操作数的地址隐含在DI中指令字中少了一个地址字段,可缩短指令字长4.间接寻址EA=(A)有效地址由形式地址间接提供OPA寻址特征AEA主存EAA1EAA1主存EA10执行指令阶段2次访存可扩大寻址范围便于编制程序OPA寻址特征A一次间址多次间址操作数操作数多次访存……子程序主程序…8081201202调用子程序调用子程序间接寻址编程举例(A)=81(A)=202……@间址特征JMP@A…
……
…5.寄存器寻址EA=Ri执行阶段不访存,只访问寄存器,执行速度快OPRi寻址特征寄存器个数有限,可缩短指令字长操作数…………R0RiRn寄存器有效地址即为寄存器编号EA=(Ri
)6.寄存器间接寻址
有效地址在寄存器中,操作数在存储器中,执行阶段访存操作数主存OPRi寻址特征
便于编制循环程序地址…………R0RiRn寄存器有效地址在寄存器中7.基址寻址(1)采用专用寄存器作基址寄存器EA=(BR)+ABR为基址寄存器OPA操作数主存寻址特征ALUBR
可扩大寻址范围
有利于多道程序
BR内容由操作系统或管理程序确定
在程序的执行过程中BR内容不变,形式地址A可变(2)
采用通用寄存器作基址寄存器操作数主存寻址特征ALUOPR0AR0
作基址寄存器由用户指定哪个通用寄存器作为基址寄存器通用寄存器R0Rn-1R1…基址寄存器的内容由操作系统确定在程序的执行过程中R0内容不变,形式地址A可变8.变址寻址EA=(IX)+AOPA操作数主存寻址特征ALUIX可扩大寻址范围便于处理数组问题
IX的内容由用户给定IX为变址寄存器(专用)在程序的执行过程中IX内容可变,形式地址A不变通用寄存器也可以作为变址寄存器例设数据块首地址为D,求N
个数的平均值直接寻址变址寻址LDADADDD+1ADDD+2…ADDD+(N-1)DIV#NSTAANSLDA#0LDX#0INXCPX#NBNEMDIV#NSTAANS共N+2
条指令共8条指令ADDX,DMX为变址寄存器D为形式地址(X)和#N
比较(X)+1X结果不为零则转9.相对寻址EA=(PC)+AA是相对于当前指令的位移量(可正可负,补码)A的位数决定操作数的寻址范围程序浮动
广泛用于转移指令操作数寻址特征ALUOPA相对距离A1000PC
…主存1000AOP(1)相对寻址举例M
随程序所在存储空间的位置不同而不同EA=(M+3)–3=M–3*LDA#0LDX#0ADDX,DINXCPX#NBNE
MDIV#NSTAANSMM+1M+2M+3而指令BNE
与指令ADDX,D
相对位移量不变–3*
指令BNE操作数的有效地址为–3*
相对寻址特征*(2)按字节寻址的相对寻址举例OP位移量2000H2008H8JMP*+8OP06H2000H2008H8设当前指令地址PC=2000H转移后的目的地址为
2008H因为取出JMP
*+8
后PC=2002H二字节指令故JMP
*+8
指令的第二字节为2008H-2002H=06H7.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.3四、指令格式举例(一)、设计指令格式时应考虑的各种因素1.指令系统的兼容性(向上兼容)2.其他因素操作类型数据类型指令格式包括指令个数及操作的难易程度指令字长是否固定寻址方式寄存器个数地址码位数、地址个数、寻址方式类型操作码位数、是否采用扩展操作码技术,确定哪些数据类型可参与操作指令寻址、操作数寻址寄存器的多少直接影响指令的执行时间(二)、指令格式举例1.PDP–8指令字长固定12位
操作码
间
页地址码访存类指令0235411寄存器类指令
111辅助操作码02311I/O类指令
110设备操作码02311987.4采用扩展操作码技术2.PDP–11源地址OP4661616目的地址存储器地址1存储器地址2OP10616目的地址存储器地址目的地址466源地址OP106目的地址OP-CODE16OP-CODE指令字长有16位、32位、48位三种零地址(16位)一地址(16位)二地址R–R(16位)二地址R–M(32位)二地址M–M(48位)扩展操作码技术7.43.IBM360OPR1R2RR格式844OPR1XBDRX格式844412OPR1R3BDRS格式844412OPBDISI格式88412二地址R–R基址加变址寻址二地址R–M三地址R–M基址寻址二地址M–M基址寻址基址寻址立即数–
M7.4OPB1D1LB2D2SS格式884124124.Intel8086(1)指令字长(2)地址格式1~6个字节MOVWORDPTR[0204],0138H6字节INCAX1字节一地址NOP1字节CALL段内调用3字节零地址5字节段间调用寄存器–寄存器寄存器–立即数寄存器–存储器ADDAX,BX2字节ADDAX,[3048H]4字节ADDAX,3048H
3字节二地址CALL7.4例1:某机器字长16位,存储器直接寻址空间为128字,变址时的位移量为-64~+63,16个通用寄存器均可作为变址寄存器。设计一套指令系统格式,满足下列寻址类型的要求。 (1)直接寻址的二地址指令3条。 (2)变址寻址的一地址指令6条。 (3)寄存器寻址的二地址指令8条。 (4)直接寻址的一地址指令12条。 (5)零地址指令32条。 试问还有多少种代码未用?若安排寄存器寻址的一地址指令,还能容纳多少条?
例2:设某机配有基址寄存器和变址寄存器,采用一地址的指令系统,允许直接和间接寻址,且指令字长、机器字长和存储字长均为16位。 (1)若采用单字长指令,共能完成105种操作,则指令可直接寻址的范围是多少?一次间接寻址的寻址范围是多少?画出其指令格式并说明各字段的含义。 (2)若存储器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年广州东华职业学院马克思主义基本原理概论期末考试笔试真题汇编
- 2025年怀化师范高等专科学校马克思主义基本原理概论期末考试笔试题库
- 2025年山东药品食品职业学院马克思主义基本原理概论期末考试真题汇编
- 2025年重庆三峡职业学院马克思主义基本原理概论期末考试真题汇编
- 2025年浙江树人学院马克思主义基本原理概论期末考试笔试真题汇编
- 2025年鄂尔多斯应用技术学院马克思主义基本原理概论期末考试参考题库
- 2025年中级监控类消防设施实操考核题库含答案
- 交直流电机在自动控制系统中的节能和经济效益比较探析
- 保健品销售代理协议
- 房产中介管理系统采购方案
- (正式版)DB32∕T 5179-2025 《智能建筑工程检测与施工质量验收规程》
- 辉绿岩粉的用途
- 2025-2030房地产行业人才结构转型与复合型培养体系构建
- 道路车辆汽车列车多车辆间连接装置强度要求
- 乐高大班汇报课
- 2026年度安全生产工作计划
- 社区教育师资管理办法
- 自动驾驶汽车在自动驾驶电动游艇领域的应用前景研究报告
- 电缆销售员知识培训内容课件
- 西南空管面试题目及答案
- 医疗器械销售年终汇报
评论
0/150
提交评论