第8章 指令系统Word文档下载推荐.docx
《第8章 指令系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《第8章 指令系统Word文档下载推荐.docx(25页珍藏版)》请在冰豆网上搜索。
![第8章 指令系统Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-12/13/31530aa7-794b-46b3-b0e4-752b9bf74e97/31530aa7-794b-46b3-b0e4-752b9bf74e971.gif)
●源操作数地址(SourceOperandReference)
●目的操作数地址(ResultOperandReference)
●下一条指令的地址(NextInstructionReference)
大多数CPU的是以下一指令地址为隐含的(由程序计数器得到),源操作数和结果操作数存放位置包括:
●主存或虚存
●CPU寄存器
●I/O设备
机器指令格式,是机器指令用二进制代码表示的结构形式,通常由操作码字段和地址码字段组成。
操作码字段表征指令的操作特性与功能,而地址码字段通常指定参与操作的操作数的地址。
计算机指令最主要的元素是操作码,它指明即将完成的操作、源操作数和目的操作数的引用方式,以及通常隐式指明下一个指令的引用方式。
操作码采用编码形式表示,CPU中有专门的电路来解释每个操作码。
常用的指令格式中地址码有:
三地址、二地址、单地址和零地址几种形式。
从操作数的物理位置来说,又可归结为3种类型:
●存储器—存储器(SS)型指令
●寄存器—寄存器(RR)型指令
●寄存器—存储器(RS)型指令
指令字长:
一个指令字中包含二进制代码的位数,称为指令字长。
常见指令字长有:
单字长、半字长、双字长。
使用多字长指令的目的:
提供足够的地址位来解决访问内存任何单元的寻址问题。
使用多字长指令的一个主要缺点是必须两次或多次访问内存以取出一整条指令。
等长指令字结构:
在一个指令系统中,如果各种指令字长是相等的,称为等长指令字结构。
变长指令字结构:
如果各种指令字长随指令功能而异,比如有的指令是单字长指令,有的指令是双字长指令,就称为变长指令字结构。
在指令集设计的最根本出发点中,最重要的方面包括有:
●操作指令表(OperationRepertoire):
应提供多少和什么样的操作,操作的复杂程度;
●数据类型(DataTypes):
所支持的数据类型;
●指令格式(InstructionFormat):
指令的(位)长度、地址数目、各个字段的大小等;
●寄存器(Registers):
能被指令访问的CPU寄存器数目以及它们的用途;
●寻址方式(AddressingMode):
指定操作数地址的产生方式。
8-1-3指令和操作数的寻址方式
寻址方式:
形成操作数或指令地址的方式,称为寻址方式。
寻址方式主要分为两类:
●指令的寻址方式:
较为简单,种类少;
●操作数的寻址方式:
较复杂,种类多,很灵活。
寻址方式的作用:
增强指令的功能,缩短指令的长度,提高指令的执行速度,增加操作数存放的位置的灵活性等。
指令的寻址方式:
●顺序寻址方式:
通过程序计数器;
●跳跃寻址方式:
通过跳转指令。
形成操作数的有效地址的方法、称为操作数的寻址方式。
有效地址(EA):
操作数的真正存储位置。
形式地址(A):
也称偏移量,它是指令字结构中给定的地址量。
寻址过程就是把操作数的形式地址(A),变换为操作数的有效地址(EA)的过程。
常用的寻址方式有:
●隐含寻址
●立即寻址
●直接寻址
●间接寻址
●寄存器寻址
●寄存器间接寻址
●相对寻址
●基址寻址
●变址寻址
●堆栈寻址
8-1-4RISC技术
RISC是精简指令系统计算机的英文缩写,即ReducedInstructionSetComputer,与其对应的是CISC,即复杂指令系统计算机(ComplexInstructionSetComputer)。
RISC的主要特点:
●选取使用频率较高的一些简单指令以及一些很有用但又不复杂的指令,让复杂指令的功能由频度高的简单指令的组合来实现。
●指令长度固定,指令格式种类少,寻址方式种类少。
●只有取数/存数(LOAD/STORE)指令访问存储器,其余指令的操作都在寄存器内完成。
●采用流水线技术,大部分指令在一个时钟周期内完成。
采用超标量和超流水线技术,可使每条指令的平均执行时间小于一个时钟周期。
●控制器采用组合逻辑控制,不用微程序控制。
●CPU中有多个通用寄存器。
●采用优化的编译程序。
与CISC机相比,RISC机的主要优点可归纳如下:
●充分利用VLSI芯片的面积;
●提高计算机运算速度;
●便于设计,可降低成本,提高可靠性;
●有效支持高级语言程序
8-2典型例题解析
1、假设某计算机字长32位,CPU有32个32位的通用寄存器,指令长度为单字长,指令操作码占6位。
请问:
(1)对于存储器直接寻址方式的R-S型指令,能直接寻址的最大主存空间是多少?
(2)对于采用通用寄存器作为基址寄存器的R-S型指令,则能直接寻址的最大主存空间是多少?
解析:
指令字长为32位,指令操作码部分占6位,32个通用寄存器,其编号为5位。
(1)存储器直接寻址的R-S型指令的一个操作数在寄存器中,所以指令中有一个5位的寄存器编号,另外一个地址码是直接地址占:
32-6-5=21位。
所以,能直接寻址的最大主存空间是221字。
(2)基址寻址的R-S型指令的一个操作数在寄存器中,另外一个操作数在基址寻址的内存单元中,因为采用通用寄存器作为基址寄存器,所以必须在指令中明显指出基址寄存器是哪个通用寄存器,所以基址寄存器的编号占5位,剩下的位数(32–6-5–5=6位)是位移量。
通用寄存器的位数是32位,所以基址寄存器中的基准地址位数是32位。
一个32位的数加上一个6位的数,其结果还是一个32位的数。
所以,能直接寻址的最大主存空间是232字。
2、采用相对寻址方式的转移指令占两个字节,第一字节是操作码,第二字节是相对位移量(用补码表示)。
CPU在执行指令时,每次CPU从存储器取出一个字节,并自动完成(PC)+1→PC。
假设执行到该转移指令时PC的内容为200AH,如果要求转移到2000H地址,则该转移指令第二字节的内容应为多少?
(用十六进制表示)
执行到该转移指令时PC的内容为200AH,那么CPU取出第一字节的操作码后,PC的内容为200BH,取出第二字节的位移量后,PC的内容为200CH,然后执行该转移指令,计算转移目标地址。
因为转移目标地址为2000H,所以,此时的位移量应该是
2000-200C=-0CH
用补码表示为:
100H-0CH=F4H。
3、设某指令系统的指令字是16位,每个地址码为6位。
若二地址指令15条,一地址指令48条,则剩下的零地址指令最多有多少条?
操作码按短到长进行扩展编码:
二地址指令:
一个地址码占6位,所以两个地址码占12位,剩下的操作码占4位。
共有16种编码,15条指令用掉15种编码(0000~1110),还剩一种编码(1111);
一地址指令:
高4位操作码是1111,最低6位是一个地址码,剩下的中间操作码还有6位。
可以有64种编码,指令条数是48,所以还剩16种编码未用。
其操作码的编码
方式如下:
1111000000~1111011111(32种编码分配给32条指令)
1111100000~1111101111(16种编码分配给16条指令)
零地址指令:
零地址指令的高10位操作码的编码空间如下:
1111110000~1111111111
高10位共有16种编码可用,再加上低6位的64种编码,一共可组合成16x64=1024种编码,可以分别分配给1024种指令。
故,剩下的零地址指令最多有1024条。
4、假设某指令的一个操作数采用一次间接寻址方式,指令中给出的地址码为2000H,地址为2000H的内存单元中的内容为3000H,地址为3000H的内存单元的内容为4000H,而4000H单元的内容为5000H,则该操作数的有效地址是多少?
该操作数的值是多少?
操作数的有效地址应该是3000H;
操作数的值应该是4000H。
简要分析:
一次间接寻址方式的指令中给出的地址码是一个间接地址,即:
操作数地址的地址。
所以,操作数的有效地址应该是地址码2000H中的内容,即:
3000H;
有效地址所指出的内存单元的内容是操作数本身,即:
4000H是操作数。
5、假设指令字长为16位,操作数的地址码为6位,指令有零地址、一地址、二地址三种格式。
(1)设操作码固定,若零地址指令有P种,一地址指令有Q种,则二地址指令最多有几种?
(2)采用扩展操作码技术,若二地址指令有X种,零地址指令有Y种,则一地址指令最多有几种?
(1)根据操作数地址码为6位,则二地址指令中操作码的位数为16–6–6=4。
这4位操作码可有24=16种操作。
由于操作码固定,则除去了零地址指令P种,一地址指令Q种,剩下二地址指令最多有16–P–Q种。
(2)采用扩展操作码技术,操作码位数可变,则二地址、一地址和零地址的操作码长度分别为4位、10位和16位。
可见二地址指令操作码每减少一种,就可多构成26种一地址指令操作码;
一地址指令操作码每减少一种,就可多构成26种零地址指令操作码。
因二地址指令有X种,则一地址指令最多有(24−X)×
26种。
设一地址指令有M种,则零地址指令最多有[(24-X)×
26-M]×
根据题中给出零地址指令有Y种,即
Y=[(24-X)×
26
则一地址指令M=(24-X)×
26-Y×
×
8-3练习题
一、选择题
1、指令系统中采用不同寻址方式的目的主要是_______。
A.实现存储程序和程序控制
B.缩短指令长度,扩大寻址空间,提高编程灵活性
C.可以直接访问外存
D.提供扩展操作码的可能并降低指令编码难度
2、单地址指令中为了完成两个数的算术运算,除地址码指明的一个操作数外,另一个数常需采用_______。
A.堆栈存储方式B.立即寻址方式C.隐含寻址方式D.间接寻址方式
3、对某个寄存器中操作数的寻址方式称为_______寻址。
A.直接B.间接C.寄存器D.寄存器间接
4、寄存器间接寻址方式中,操作数处在_______。
A.通用寄存器B.主存单元C.程序计数器D.堆栈
5、变址寻址方式中,操作数的有效地址等于_______。
A.基值寄存器内容加上形式地址(位移量)
B.堆栈指示器内容加上形式地址
C.变址寄存器内容加上形式地址
D.程序计数器内容加上形式地址
6、程序控制类指令的功能是_______。
A.进行算术运算和逻辑运算
B.进行主存与CPU之间的数据传送
C.进行CPU与I/O设备之间的数据传送
D.改变程序执行的顺序
7、运算型指令的寻址与转移性指令的寻址不同点在于_______。
A.前者取操作数,后者决定程序转移地址
B.后者取操作数,前者决定程序转移地址
C.前者是短指令,后者是长指令
D.前者是长指令,后者是短指令
8、指令的寻址方式有顺序和跳跃两种方式,采用跳跃寻址方式,可以实现_______。
A.堆栈寻址B.程序的条件转移
C.程序的无条件转移D.程序的条件转移或无条件转移
9、下面描述汇编语言特性的句子中概念上有错误的句子是_______。
A.对程序员的训练来说,需要硬件知识
B.汇编语言对机器的依赖性高
C.汇编语言的源程序通常比高级语言源程序短小
D.汇编语言编写的程序执行速度比高级语言快
10、就取得操作数的速度而言,下列寻址方式中速度最快的是_______,速度最慢的是_______,不需要访存的寻址方式是_______。
A.直接寻址B.立即寻址C.间接寻址
11、下列说法中不正确的是_______。
A.变址寻址时,有效数据存放在主存中.
B.堆栈是先进后出的随机存储器
C.堆栈指针SP的内容表示当前堆栈内所存储的数据的个数
D.内存中指令的寻址和数据的寻址是交替进行的
12、下列几项中,不符合RISC指令系统的特点是_______。
A.指令长度固定,指令种类少
B.寻址方式种类尽量减少,指令功能尽可能强
C.增加寄存器的数目,以尽量减少访存次数
D.选取使用频率最高的一些简单指令,以及很有用但不复杂的指令
13、下面关于RISC技术的描述中,正确的是_______。
A.采用RISC技术后,计算机的体系结构有恢复到早期的饿比较简单的情况
B.为了实现兼容,新设计的RISC是从原来的CISC系统的指令系统中挑选一部分实现的
C.RISC的主要目标是减少指令数
D.RISC设有乘.除法指令和浮点运算指令.
14、位操作类指令的功能是______。
A.对CPU内部通用寄存器或主存某一单元任一位进行状态检测(0或1)
B.对CPU内部通用寄存器或主存某一单元任一位进行状态强置(0或1)
C.对CPU内部通用寄存器或主存某一单元任一位进行状态检测或强置
D.进行移位操作
15、采用基址寻址可以扩大寻址范围,并且。
A.基址寄存器内容由用户确定,在程序执行过程中不可变
B.基址寄存器内容由用户确定,在程序执行过程中可变
C.基址寄存器内容由操作系统确定,在程序执行过程中不可变
D.基址寄存器内容由操作系统确定,在程序执行过程中可变
16、堆栈寻址方式时,设A为累加器,SP为堆栈指针寄存器,Msp为SP所指向的栈顶单元,若进栈操作的动作顺序为(A)->
Msp,(SP)-1->
SP,则出栈操作的动作顺序为。
A.(Msp)->
A,(SP)+1->
SP
B.(SP)+1->
SP,(Msp)->
A
C.(SP)-1->
D.(Msp)->
A,(SP)-1->
17、设变址寄存器为X,形式地址为D,某机器具有先变址再间址的寻址方式,则这种寻址方式的有效地址为。
A.EA=(X)+DB.EA=(X)+(D)
C.EA=((X)+D)D.EA=(X+(D))
18、扩展操作码是。
A.操作码字段以外的辅助操作字段的代码
B.指令格式中不同字段设置的操作码
C.一种指令优化技术,即让操作码的长度随地址数的减少而增加,不同地址数的指令可以具有不同的操作码长度。
D.指扩大操作码字段的位数
19、设相对寻址的转移指令占两个字节,第一字节为操作码,第二字节为相对偏移量(补码表示),若CPU每当从存储器取出一个字节,则PC自动加1,设当前PC的内容为2000H,如果需要转移到2008H地址,则该转移指令的第二字节的内容为。
A.08HB.06HC.0AHD.04H
20、下列叙述中,能够反映CISC的特征。
A.丰富的寻址方式B.控制器采用组合逻辑设计C.指令字长固定
D.大多数指令需要多个时钟周期才能执行完成E.各种指令都能访存
F.只有LOAD/STORE指令可以访存G.采用优化编译技术
21、指令格式设计中,采用扩展操作码的目的是。
A.增加指令长度B.增加寻址空间C.增加指令数量D.缩短指令长度
22、某机器字长16位,存储器按字编址,CPU读取一条单字长指令后,PC自动加。
A.1B.2C.3D.4
23、某机器字长16位,存储器按字节编址,CPU读取一条单字长指令后,PC自动加。
24、某机器字长16位,存储器按字节编址,设PC当前值为1000H,当CPU读取一条双字长指令后,PC的值为。
A.1001HB.1002HC.1003HD.1004H
25、指令操作所需的数据不可能来自。
A.指令本身B.寄存器C.存储器D.控制存储器
26、对于单地址指令格式,下列描述正确的是。
A.仅有一个操作数,其地址由指令的地址码提供
B.可能有一个操作数,有可能有两个操作数
C.有两个操作数,另一个是隐含的
D.有一个隐含的操作数
27、对实现程序浮动提供了良好支持。
A.间接寻址B.变址寻址C.相对寻址D.基址寻址
28、便于处理数组问题。
29、有利于编写循环程序
A.寄存器寻址B.变址寻址C.相对寻址D.基址寻址
30、子程序调用指令的功能是。
A.改变PC的值B.改变地址寄存器的值
C.堆栈指针寄存器SP的值D.改变PC的值和堆栈指针寄存器SP的值
二、填空题
1、形成指令地址的方式,称为______方式,有______寻址和______寻址两种,使用______来跟踪指令地址。
2、形式操作数地址的方式,称为______方式,操作数可放在______寄存器、______寄存器、______和______中。
3、堆栈是一种特殊的______寻址方式,它采用______原理。
按结构不同分为______堆栈和______堆栈
4、隐含寻址是指令格式中不明确给出______。
而是隐含指定,通常以______作为隐含地址。
立即寻址是指令的地址字段指出的不是______,而是______。
5、变址寻址和基值寻址的区别是:
基值寻址中基值寄存器提供______,指令提供______,后者位数______。
而变址寻址中变址寄存器提供______,指令提供______,后者位数______。
6、指令字段长度等于机器字长度的指令称为______;
指令字长度等于半个机器字长度的指令称为______;
指令字长度等于两个机器字长度的指令称为______。
7、计算机的低级语言分为______和______,这两种语言都是面向______的语言。
高级语言的语句和用法与具体机器的______无关。
8、设D为指令中的形式地址,I为基址寄存器,PC为程序计数器。
若有效地址E=((PC)+D),则为______寻址方式;
若有效地址E=(D),则为______寻址方式;
若E=(I)+D,则为______寻址方式;
若为直接寻址,则有效地址为______。
9、在寄存器间接寻址方式中,有效地址存放在______中,而操作数存放在______中。
10、根据操作数所在的位置,指出其寻址方式:
操作数在寄存器中,为______寻址;
操作数地址在寄存器中,为______寻址;
操作数在指令中,为______寻址;
操作数的主存地址在指令中,为______寻址;
操作数的地址为某一寄存器的内容与指令中的位移量之和,可以是______寻址、______寻址、______寻址。
11、指令系统是表征一台计算机性能的重要因素,它的______和______不仅直接影响到机器的硬件结构,而且影响到______。
12、指令字中的地址码字段(形式地址)有不同含义,它是通过体现的,因为通过某种方式的变换,可以获得地址。
常用的指令地址格式有、、和四种。
13、二地址指令格式中,操作数的物理位置有三种形式,即型、型和型。
14、把两种寻址方式相结合就形成了复合寻址方式,如把和相结合可以形成和两种复合寻址方式。
15、条件转移、无条件转移、子程序调用指令、中断返回指令都属于类指令,这种指令字的地址码字段指出的不是的地址,而是的地址。
16、某机器指令系统可完成98种操作,指令字长为16位,操作码长度固定。
若该指令系统有六种寻址方式,若要保证最大范围内直接寻址的话,则操作码占位,寻址特征占位,形式地址占位,一次间址的范围是。
17、某机器采用三地址格式指令,共能完成50种操作,若机器在1K范围内直接寻址,则指令字长至少应该为位,其中操作码占位,地址码占位。
18、RISC指令系统选取使用频度较高的一些指令,复杂指令的功能由指令的组合来实现。
其指令长度,指令格式种类,寻址方式种类,只有指令可以访存,其余指令操作均在寄存器之间进行,且采用技术,大部分指令用一个机器周期完成。
19、某机器有156条指令,采用单地址格式,则指令字最少需取位才能直接寻址64K个存储单元。
完成一条这种格式的加法指令,需要访存次。
20、在指令的执行阶段,需要访存两次的指令通常采用了寻址。
三、综合应用题
1、指令格式结构如下所示,试分析指令格式及寻址方式特点。
1510
95
40
OP
目标寄存器
源寄存器
2、指令格式结构如下所示,试分析指令格式及寻址方式特点。
74
30
-
变址寄存器
位移量(16位)
3、指令格式结构如下所示,试分析指令格式及寻址方式特点。
3126
25
24
2320
190
I
20位地址
4、某机的16位单字长访内指令格式如下:
4
2
1
8
M
X
A
其中,A为形式地址,补码表示(其中一位符号位);
I为直接/间接寻址方式:
I=0为直接寻址方式;
M为寻址模式:
0为绝对寻址,1为基地址寻址,2位相对寻址,3为立即寻址;
X为变址寻址。
设PC、Rz、Rb分别为指令计数器、变址寄存器,基地址寄存器,E为有效地址,试解答如下问题:
(1)该指令格式能定义多少种不同的操作?
立即寻址操作书的范围是多少?
(2)在非间址情况下,写出各计算有效地址的表达式。
(3)设基值寄存器14位,在非变址直接基地寻址时,确定存