计算机组成原理第七章 作业练习
一.单选题(共19题,51.3分)
1
程序控制类指令(转移、循环等)的功能是( )。
-
A、
进行主存和CPU之间的数据传送
-
B、
进行CPU和外设之间的数据传送
-
C、
改变程序执行的顺序
-
D、
控制进、出栈操作
正确答案: C 我的答案:C
2
在指令设计格式中,采用扩展操作码的目的是( )。
-
A、
增加指令长度
-
B、
增加寻址空间
-
C、
增加操作码位数
-
D、
增加指令数量
正确答案: D 我的答案:D
3
某指令系统指令字长为8位,每一地址码长为3位,用扩展操作码技术,若指令系统具有2条二地址指令,10条零地址指令,则最多有( )条一地址指令。
-
A、
20
-
B、
6
-
C、
10
-
D、
14
正确答案: D 我的答案:D
分析:按照正常计算顺序,从二地址推导到一地址,再到0地址是非常简单的,因为是等式。但是如果告诉左右两边,求中间,就需要一点点不等式的思想了。
具体如下:首先看,二地址是不是推导的起点,二地址共占用6位,这样只留下2位作操作码,不可能有3地址,因此确定是最多只有二地址。二地址条件下,只有2位操作码,最多四条二地址指令。如果真的是4条二地址指令,问题就来了,就不存在一地址,零地址了。我们说要留个种子,才有扩展。 根据题干,只有2条二地址指令,意味着留了2个种子做下一级的扩展。拿一个3位的地址段,共有23=823=8个状态,乘上刚才留的两个种子,最多可以有2⋅8=162⋅8=16个一地址指令。
同样的道理,如果一地址指令不留一个或多个状态做0地址的扩展种子,就不存在0地址了。而现在是已经知道存在0地址指令,所以,要留状态。那么留几个呢?根据0地址指令个数反推。如果只留一个,那么0地址指令最多是1⋅23=81⋅23=8个。不够10个,那么就意味着至少留2个状态做种子。于是一地址最多是16−2=14个16−2=14个。
4
固定长度操作码为5位,则最多可表示( )条指令。
-
A、
32
-
B、
10
-
C、
31
-
D、
2
正确答案: A 我的答案:A
5
单地址指令中为了完成两个数的算术运算,除地址码指明的一个操作数外,另一个常需采用( )。
-
A、
堆栈寻址方式
-
B、
立即寻址方式
-
C、
隐含寻址方式
-
D、
间接寻址方式
正确答案: C 我的答案:C
6
以下四种类型指令中,执行时间最长的是( )。
-
A、
RR型指令
-
B、
RS型指令
-
C、
SS型指令
-
D、
程序控制指令
正确答案: C 我的答案:C
A项,寄存器型--寄存器-寄存器(RR)
B项,存储器型--寄存器-基址存储器(RS)
C项,存 -存储器型--基址存储器-基址存储器(SS)
D项,程序控制类指令包括跳转指令,循环指令,子程序指令以及中断指令。这些指令可以控制程序的执行顺序。
CPU访问速度从快到慢:寄存器,高速缓存,内存,硬盘,光盘,软盘。 因为CPU访问内存速度相较于访问寄存器慢,所以选C。
综上本题选C。
补充:
存储器-立即数型--基址存储器-立即数(SI)
寄存器-变址型--寄存器变址存储器(RX)
7
就取得操作数的速度而言,下列寻址方式中速度最快的是( )。
-
A、
直接寻址
-
B、
立即寻址
-
C、
寄存器间接寻址
-
D、
寄存器寻址
正确答案: B 我的答案:B
8
下列寻址方式中取得操作数速度最慢的是( )。
-
A、
相对寻址
-
B、
基址寻址
-
C、
寄存器寻址
-
D、
存储器间接寻址
正确答案: D 我的答案:D
9
用某个寄存器值作为操作数的寻址方式是( )寻址。
-
A、
直接
-
B、
间接
-
C、
寄存器
-
D、
寄存器间接
正确答案: C 我的答案:C
10
RISC思想主要基于的是( )。
-
A、
减少指令的平均执行周期数
-
B、
便于编译器的编写
-
C、
减少硬件的复杂程序
-
D、
减少指令的复杂程度
正确答案: D 我的答案:D
11
零地址的运算类指令在指令格式中不给出操作数地址,参加的两个操作数来自( )。
-
A、
累加器和寄存器
-
B、
累加器和暂存器
-
C、
堆栈的栈顶和次栈顶单元
-
D、
暂存器和堆栈的栈顶单元
正确答案: C 我的答案:C
12
一个计算机系统采用32位单字长指令,地址码为12位,如果定义了250条二地址指令,那么还可以有( )条单地址指令,
-
A、
4K
-
B、
8K
-
C、
16K
-
D、
24K
正确答案: D 我的答案:D
地址码为12位,则二地址指令的操作码长度为32-12-12=8位,已定义了250条二地址指令,28-250=6,则可以设计出单地址指令6X212=24K条。
13
采用扩展操作码的重要原则是( )。
-
A、
操作码长度可变
-
B、
使用频率高的指令采用短操作码
-
C、
使用频率低的指令采用短操作码
-
D、
满足整数边界原则
正确答案: B 我的答案:A
14
为了缩短指令中某个地址段的位数,有效的方法是采取( )。
-
A、
立即寻址
-
B、
变址寻址
-
C、
间接寻址
-
D、
寄存器寻址
正确答案: D 我的答案:D
15
设指令中的地址码为A,变址寄存器为X,基址寄存器为B。程序计数器为PC,则变址间接寻址方式的操作数有效地址EA为( )。
-
A、
(X)+(A)
-
B、
(X+B)
-
C、
((X)+A)
-
D、
(PC)+(A)
正确答案: C 我的答案:C
16
某机器字长16位,主存按字节编址,转移执行采用相对寻址,由2个字节组成,第一字节为操作码字段,第二字节为相对位移量字段。假设取指令时,每取一个字节PC自动加1.若某转移指令所在主存地址为2000H,相对位移量字段的内容为06H,则该转移指令成功转移后的目标地址为( )。
-
A、
2006H
-
B、
2007H
-
C、
2008H
-
D、
2009H
正确答案: C 我的答案:C
目标地址由两部分组成:操作码字段+相对位移量字段。
主存地址也应该由这两部分构成,所以在取指过程中,应该是取了源地址的操作码地址(一个字节)+偏移量字段(一个字节)。最后加上PC自加规律,两个字节加2,这样才是2008H ;
如果在源地址的时候把源偏移量也取了,感觉没意义,答案是2008H,这样理解符合规律。计算机内部的取址规律应该是这样。
17
假设采用相对寻址方式的转移指令占两个字节,第一字节是操。码,第二字节是相对位移量(用补码表示)。每次CPU从存储器取出一个字节,并自动完成(PC)+1->PC。假设执行到该转移指令时PC的内容为2003H,要求转移到200AH地址,则该转移指令第二字节的内容应为( )。
-
A、
05H
-
B、
08H
-
C、
F8H
-
D、
F5H
正确答案: A 我的答案:A
转移指令是2字节,所以2003H转移后,变成2003H+2=2005H 因此,2005H转到200AH,即(200AH – 2005H =5H)需要+5,+5用补码表示,+5的补码0000 0101,16进制是05H,所以选择A项。
18
假设某条指令的一个操作数采用变址寻址方式,变址寄存器的内容为8H,指令中给出的形式地址为1200H,地址为1200H的内存单元中的内容为12FCH,地址为12FCH的内存单元的内容为38B8H,则该操作数的有效地址为( )。
-
A、
1200H
-
B、
1208H
-
C、
12FCH
-
D、
38B8H
正确答案: B 我的答案:B
EA=1200+8
19
采用变址寻址可以扩大寻址范围,且( )。
-
A、
变址寄存器的内容由用户确定,在程序执行过程中不能改变
-
B、
变址寄存器的内容由操作系统确定,在程序执行过程中不能改变
-
C、
变址寄存器的内容由用户确定,在程序执行过程中可以改变
-
D、
变址寄存器的内容由操作系统确定,在程序执行过程中可以改变
正确答案: C 我的答案:C
二.判断题(共15题,40.5分)
1
在指令系统的可扩充性方面,微程序控制器优于组合逻辑控制。
正确答案:√ 我的答案:√
2
大多数个人计算机中可配置的最大主存容量受指令地址码位数的限制。
正确答案:× 我的答案:×
内存容量不仅受地址总线位数限制,还受寻址方式、操作系统的存储管理方式等限制。
3
寄存器间接寻址方式所形成的有效地址为主存地址。
正确答案:√ 我的答案:√
4
计算机指令系统中采用不同寻址方式的目的主要是为了降低指令的译码难度。
正确答案:× 我的答案:×
指令系统中采用不同寻址方式的目的是“扩大寻址空间并提高编程灵活性”;
5
在二地址指令中指令地址码字段存放的一定是操作数的地址。
正确答案:× 我的答案:×
p303,op a1 a2 ,a2还可以存放代表中间结果的存放地址
6
在一条机器指令中可能出现不止一种寻址方式。
正确答案:√ 我的答案:√
7
采用扩展操作码技术,可增加指令个数。
正确答案:√ 我的答案:√
8
零地址指令中午地址码,其操作数的地址可能隐含在堆栈指针SP中。
正确答案:√ 我的答案:√
9
指令字长可以是任意二进制位数。
正确答案:× 我的答案:√
存储字长、指令字长、数据字长三者可各不相同,但它们必须是字节的整数倍。
10
数据不对准边界存放,有利于读取,可减少访存次数。
正确答案:× 我的答案:×
11
指令的跳跃寻址可实现分支和循环结构。
正确答案:√ 我的答案:√
12
运算类的隐含寻址,两个操作数均隐含在堆栈中。
正确答案:× 我的答案:×
13
一次间接寻址方式获得操作数只需访问一次主存。
正确答案:× 我的答案:×
不一定
14
堆栈寻址中,SP是指栈顶内容。
正确答案:× 我的答案:√
SP是堆栈指针,它的数值表示离堆栈段地址还有多远
15
RISC技术是用最常用的20%简单指令,组合实现80%的复杂指令。
正确答案:√ 我的答案:√
三.其它(共2题,8.2分)
1
某计算机字长16位,主存容量为64K字,采用单字长单地址指令,共有64条指令,试采用四种寻址方式(立即、直接、基值、相对)设计指令格式,并写出这四种寻址方式的有效地址计算方法。
正确答案:
64条指令需占用操作码字段(OP)6位,这样指令余下长度为10位。为了覆盖主存64K字的地址空间,设寻址模式(X)2位,形式地址(D)8位,其指令格式如下: 15 10 9 8 7 0 OP X D寻址模式定义如下:X= 0 0 直接寻址 有效地址 E=D(256单元)X= 0 1 间接寻址 有效地址 E= (D)(64K)X= 1 0 变址寻址 有效地址 E= (R)+D (64K)X= 1 1 相对寻址 有效地址 E=(PC)+D (64K)其中R为变址寄存器(16位),PC为程序计数器(16位),在变址和相对寻址时,位移量D可正可负。
我的答案:
解:40条指令需占用操作码字段(OP)6位,这样指令余下长度为10位。为了覆盖主存640K字的地 址空间,设寻址模式(X)2位,形式地址(D)8位,其指令格式如下:
寻址模式定义如下: X= 0 0 直接寻址 有效地址 E=D(直接寻址为256个存储单元) X= 0 1 立即寻址 D字段为操作数 X= 1 0 变址寻址 有效地址 E= (RX)+D (可寻址64K个存储单元) X= 1 1 相对寻址 有效地址 E=(PC)+D (可寻址64K个存储单元) 其中RX为变址寄存器(16位),PC为程序计数器(16位),在变址和相对寻址时,位移量D可 正可负。
批语
2
某机主存容量为4M*16位,且存储字长等于指令字长,若该机指令可完成108种操作,操作码位数固定,且具有直接、间接、变址、基址、相对、立即等六种寻址方式,回答下列问题:(1)画出一地址指令格式并指出各字段的作用
(2)该指令直接寻址的最大范围
(3)一次间接寻址和多次间接寻址的寻址范围
(4)立即数的范围(十进制表示)
(5)相对寻址的范围(十进制表示)
(6)上述六种寻址方式的指令中哪一种执行时间最短,哪一种最长,为什么?哪一种便于程序浮动,哪一种最适合处理数组问题?
(7)如何修改指令格式,使指令的寻址范围可扩大到4M?
(8)为使一条转移指令能转移到主存的任一位置,可采取什么措施?简要说明之。
正确答案:
存储字长为16位,存储字长等于指令字长,则指令字长也是16位;完成108种操作,则操作码为7位;有6种寻址方式,则寻址特征为3位(1)一地址指令格式OP 7寻址特征 3形式地址 A 6 (2)一地址指令直接寻址的范围是26=64字(3)存储字长为16位,则一次间址为216=64k字,多次间址需要1位来说明是不是还是间址,则寻址空间为215=32k字(4)形式地址A若为立即数,则立即数的范围是-32--+31(5)相对寻址中形式地址A就是位移量,A为6位,则范围是-32--+31(6)六种寻址方式中,间接寻址执行时间最长,因为一次间址就要访问2次存储器才能取得操作数,所以时间最长。变址寻址便于程序浮动,基址寻址最适合处理数组问题。(7)指令的寻址范围扩大到4M,需要地址线是22根,用目前的6种寻址方式都达不到。只有扩大指令字长,把指令字长扩大到32位,这样形式地址正好22位,即可寻址到4M空间的存储器。(8)转移地址转移到主存的任一位置,主存为4M,则转移地址要达到22位才行。把指令字长扩大到32位,形式地址为22位就行了。
我的答案:
(1)op A1 操作码字段用来指明该指令所要完成的操作地址码字段表示可以直接寻址的范围(2)16-7-3(3)16 15(4)2^6(6为地址码位数)(5)2^16(寄存器的字长,即机器字长)