计算机组成原理习题答案第四章.docx

上传人:b****6 文档编号:11939598 上传时间:2023-06-03 格式:DOCX 页数:9 大小:17.89KB
下载 相关 举报
计算机组成原理习题答案第四章.docx_第1页
第1页 / 共9页
计算机组成原理习题答案第四章.docx_第2页
第2页 / 共9页
计算机组成原理习题答案第四章.docx_第3页
第3页 / 共9页
计算机组成原理习题答案第四章.docx_第4页
第4页 / 共9页
计算机组成原理习题答案第四章.docx_第5页
第5页 / 共9页
计算机组成原理习题答案第四章.docx_第6页
第6页 / 共9页
计算机组成原理习题答案第四章.docx_第7页
第7页 / 共9页
计算机组成原理习题答案第四章.docx_第8页
第8页 / 共9页
计算机组成原理习题答案第四章.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

计算机组成原理习题答案第四章.docx

《计算机组成原理习题答案第四章.docx》由会员分享,可在线阅读,更多相关《计算机组成原理习题答案第四章.docx(9页珍藏版)》请在冰点文库上搜索。

计算机组成原理习题答案第四章.docx

计算机组成原理习题答案第四章

1.指令长度和机器字长有什么关系?

半字长指令、单字长指令、双字长指令分别表示什么意思?

解:

指令长度与机器字长没有固定的关系,指令长度可以等于机器字长,也可以大于或小于机器字长。

通常,把指令长度等于机器字长的指令称为单字长指令;指令长度等于半个机器字长的指令称为半字长指令;指令长度等于两个机器字长的指令称为双字长指令。

2.零地址指令的操作数来自哪里?

一地址指令中,另一个操作数的地址通常可采用什么寻址方式获得?

各举一例说明。

解:

双操作数的零地址指令的操作数来自堆栈的栈顶和次栈顶。

双操作数的一地址指令的另一个操作数通常可采用隐含寻址方式获得,即将另一操作数预先存放在累加器中。

例如,前述零地址和一地址的加法指令。

3.某机为定长指令字结构,指令长度16位;每个操作数的地址码长6位,指令分为无操作数、单操作数和双操作数三类。

若双操作数指令已有K种,无操作数指令已有L种,问单操作数指令最多可能有多少种?

上述三类指令各自允许的最大指令条数是多少?

解:

X=(24-K×26-jL

26k

双操作数指令的最大指令数:

24-1。

单操作数指令的最大指令数:

15×26-1(假设双操作数指令仅1条,为无操作数指令留出1个扩展窗口。

无操作数指令的最大指令数:

216-212-26。

其中212为表示某条二地址指令占用的编码数,26为表示某条单地址指令占用的编码数。

此时双操作数和单操作数指令各仅有1条。

4.设某机为定长指令字结构,指令长度12位,每个地址码占3位,试提出一种分配方案,使该指令系统包含:

4条三地址指令,8条二地址指令,180条单地址指令。

解:

4条三地址指令

000XXXYYYZZZ

011XXXYYYZZZ

8条二地址指令

100000XXXYYY

100111XXXYYY

180条单地址指令

5.指令格式同上题,能否构成:

三地址指令4条,单地址指令255条,零地址指令64条?

为什么?

解:

三地址指令4条

000XXXYYYZZZ

011XXXYYYZZZ

单地址指令255条

只能再扩展出零地址指令8条,所以不能构成这样的指令系统。

6.指令中地址码的位数与直接访问的主存容量和最小寻址单位有什么关系?

解:

主存容量越大,所需的地址码位数就越长。

对于相同容量来说,最小寻址单位越小,地址码的位数就越长。

7.试比较间接寻址和寄存器间址。

解:

间接寻址方式的有效地址在主存中,操作数也在主存中;寄存器间址方式的有效地址在寄存器中,操作数在主存中。

所以间接寻址比较慢。

8.试比较基址寻址和变址寻址。

解:

基址寻址和变址寻址在形成有效地址时所用的算法是相同的,但是它们两者实际上是有区别的。

一般来说,变址寻址中变址寄存器提供修改量(可变的,而指令中提供基准值(固定的;基址寻址中基址寄存器提供基准值(固定的,而指令中提供位移量(可变的。

这两种寻址方式应用的场合也不同,变址寻址是面向用户的,用于访问字符串、

向量和数组等成批数据;而基址寻址面向系统,主要用于逻辑地址和物理地址的变换,用以解决程序在主存中的再定位和扩大寻址空间等问题。

在某些大型机中,基址寄存器只能由特权指令来管理,用户指令无权操作和修改。

9.某机字长为16位,主存容量为64K字,采用单字长单地址指令,共有50条指令。

若有直接寻址、间接寻址、变址寻址、相对寻址四种寻址方式,试设计其指令格式。

解:

操作码6位,寻址方式2位,地址码8位。

10.某机字长为16位,主存容量为64K字,指令格式为单字长单地址,共有64条指令。

试说明:

(1若只采用直接寻址方式,指令能访问多少主存单元?

(2为扩充指令的寻址范围,可采用直接/间接寻址方式,若只增加一位直接/间接标志,指令可寻址范围为多少?

指令直接寻址的范围为多少?

(3采用页面寻址方式,若只增加一位Z/C(零页/现行页标志,__________指令寻址范围为多少?

指令直接寻址范围为多少?

(4采用(2、(3两种方式结合,指令的寻址范围为多少?

指令直接寻址范围为多少?

解:

因为计算机中共有64条指令,所以操作码占6位,其余部分为地址码或标志位。

(1若只采用直接寻址方式,地址码部分为10位,指令能访问的主存单元数为210=1K字。

(2若采用直接/间接寻址方式,将增加了一位直接/间接标志,地址码部分为9位,指令直接寻址的范围为29=0.5K字,指令可寻址范围为整个主存空间216=64K字。

(3若采用页面寻址方式,将增加一位Z/C(零页/现行页标志,所以指令直接寻址范围仍为29=0.5K字,指令寻址范围仍为216=64K字。

(4此时将需要@和Z/C两个标志位,所以指令直接寻址范围为28=0.25K字,指令的可寻址范围仍为216=64K字。

11.设某机字长32位,CPU有32个32位的通用寄存器,设计一个能容纳64种操作的单字长指令系统。

(1如果是存储器间接寻址方式的寄存器-存储器型指令,能直接寻址的最大主存空间是多少?

(2如果采用通用寄存器作为基址寄存器,能直接寻址的最大主存空间又是多少?

解:

因为计算机中共有64条指令,所以操作码占6位;32个通用寄存器,寄存器编号占5位;其余部分为地址码或标志位。

(1如果是存储器间接寻址方式的寄存器-存储器型指令,操作码6位,寄存器编号5位,间址标志1位,地址码20位,直接寻址的最大主存空间是220字。

(2如果采用通用寄存器作为基址寄存器,EA=(Rb+A,能直接寻址的最大主存空间是232字。

12.已知某小型机字长为16位,其双操作数指令的格式如下:

0567815OPRA

其中:

OP为操作码,R为通用寄存器地址。

试说明下列各种情况下能访问的最大主存区域有多少机器字?

(1A为立即数。

(2A为直接主存单元地址。

(3A为间接地址(非多重间址。

(4A为变址寻址的形式地址,假定变址寄存器为R1(字长为16位。

解:

(11个机器字。

(2256个机器字。

(365536个机器字。

(465536个机器字。

13.计算下列4条指令的有效地址(指令长度为16位。

(1000000Q

(2100000Q

(3170710Q

(4012305Q

假定:

上述4条指令均用八进制书写,指令的最左边是一位间址指示位@(@=0,直接寻址;@=1,间接寻址,且具有多重间访功能;指令的最右边两位为形式地址;主存容量215单元,表3唱4为有关主存单元的内容(八进制。

地址内容

因为指令的最高位为0,故为直接寻址,EA=

A=00000Q。

(2100000Q

因为指令的最高位为1,故指令为间接寻址。

(00000=100002,最高位仍为1,继续间接寻址。

(00002=054304,其最高位为0,表示已找到有效

地址,EA=54304Q。

(3170710Q

因为指令的最高位为1,故指令为间接寻址。

(00010=100005,最高位仍为1,继续间接寻址。

(00005=100001,最高位仍为1,继续间接寻址。

(00001=046710,其最高位为0,表示已找到有效地址,EA=46710Q。

(4012305Q

因为指令的最高位为0,故为直接寻址,EA=A=00005Q。

14.假定某机的指令格式如下:

@OPI1I2Z/CA

其中:

Bit11=1:

间接寻址;

Bit8=1:

变址寄存器I1寻址;

Bit7=1:

变址寄存器I2寻址;

Bit6(零页/现行页寻址:

Z/C=0,表示0页面;

Z/C=1,表示现行页面,即指令所在页面。

若主存容量为212个存储单元,分为26个页面,每个页面有26个字。

设有关寄存器的内容为

(PC=0340Q(I1=1111Q(I2=0256Q试计算下列指令的有效地址。

(11046Q

(22433Q

(33215Q

(41111Q

因为4个标志位均为0,故为直接寻址,EA=A=0046Q。

(22433Q=010*********

因为Bit8(I1=1,故为变址寄存器1寻址,EA=(I1+A=1111+33=1144Q。

因为Bit7(I2=1,故为变址寄存器2寻址,EA=(I2+A=0256+15=0273Q。

因为Bit6(Z/C=1,故为当前页寻址,EA=(PCH∥A=03∥11=0311Q。

15.假定指令格式如下:

151********

OPI1I2Z/CD/IA

其中:

D/I为直接/间接寻址标志,D/I=0表示直接寻址,D/I=1表示间接寻址。

其余标志位同题14说明。

若主存容量为216个存储单元,分为28个页面,每个页面有28个字。

设有关寄存器的内容为

(I1=002543Q(I2=063215Q(PC=004350Q

试计算下列指令的有效地址。

(1152301Q

(2074013Q

(3161123Q

(4140011Q

因为Bit10(I2=1,故为变址寄存器2寻址,EA=(I2+A=063215+

301=063516Q。

因为Bit11(I1=1,故为变址寄存器1寻址,EA=(I1+A=002543+

013=002556Q。

因为Bit9(Z/C=1,故为当前页寻址,EA=(PC//A=004123Q。

因为4个标志位均为0,故为直接寻址,EA=A=000011Q。

16.举例说明哪几种寻址方式除去取指令以外不访问存储器?

哪几种寻址方式除去取指令外只需访问一次存储器?

完成什么样的指令,包括取指令在内共访问4次存储器?

解:

除去取指令以外不访问存储器:

立即寻址,寄存器寻址。

除去取指令外只需访问一次存储器:

直接寻址,寄存器间接寻址,变址寻址,基址寻址,相对寻址,页面寻址。

二级间接寻址包括取指令在内共访问4次存储器。

17.设相对寻址的转移指令占两个字节,第一个字节是操作码,第二个字节是相对位移量,用补码表示。

假设当前转移指令第一字节所在的地址为2000H,且CPU每取一个字节便自动完成(PC+1→PC的操作。

试问当执行JMP倡+8和JMP倡-9指令(倡为相对寻址特征时,转移指令第二字节的内容各为多少?

转移的目的地址各是什么?

解:

转移指令第二字节的内容分别为:

00001000(+8,11110111(-9转移的目的地址分别为:

200AH,1FF9H。

18.什么叫主程序和子程序?

调用子程序时还可采用哪几种方法保存返回地址?

画图说明调用子程序的过程。

解:

主程序就是指通常的程序,而子程序是一组可以公用的指令序列,只要知道子程序的入口地址就能调用它。

保存返回地址的方法有多种:

(1用子程序的第一个字单元存放返回地址。

转子指令把返回地址存放在子程序的第一个字单元中,子程序从第二个字单元开始执行。

返回时将第一个字单元地址作为间接地址,采用间址方式返回主程序。

(2用寄存器存放返回地址。

转子指令先把返回地址放到某一个寄存器中,再由子程序将寄存器中的内容转移到另一个安全的地方。

(3用堆栈保存返回地址。

19.在某些计算机中,调用子程序的方法是这样实现的:

转子指令将返回地址存入子程序的第一个字单元,然后从第二个字单元开始执行子程序,请回答下列问题:

(1为这种方法设计一条从子程序转到主程序的返回指令。

(2在这种情况下,怎么在主、子程序间进行参数的传递?

(3上述方法是否可用于子程序的嵌套?

(4上述方法是否可用于子程序的递归(即某个子程序自己调用自己?

(5如果改用堆栈方法,是否可实现(4所提出的问题?

解:

(1返回指令通常为零地址指令。

返回地址保存在堆栈中,执行返回指令时自动从堆栈中弹出。

而目前返回地址是保存在子程序的第一个单元中,故此时返回指令不能再是零地址指令了,而应当是一地址指令。

如:

JMP@子程序首地址间接寻址可找到返回地址,然后无条件转移到返回的位置。

(2在这种情况下,可利用寄存器或主存单元进行主、子程序间的参数传递。

(3可以用于子程序的嵌套(多重转子。

因为每个返回地址都放在调用的子程序的第一个单元中。

(4不可以用于子程序的递归,因为当某个子程序自己调用自己时,子程序第一个单元的内容将被破坏。

(5如果改用堆栈方法,可以实现子程序的递归,因堆栈具有后进先出的功能

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2