《计算机组成原理》第二版第七章课后习题答案

您所在的位置:网站首页 地址码又叫操作数 《计算机组成原理》第二版第七章课后习题答案

《计算机组成原理》第二版第七章课后习题答案

2023-10-09 01:55| 来源: 网络整理| 查看: 265

1.什么叫机器指令?什么叫指令系统?为什么说指令系统与机器的主要功能以及硬件结构之间存在着密切关系?

答:机器指令:每一条机器语言的语句(CPU可以执行的语句)。

指令系统:全部机器指令的集合称为机器的指令系统。

指令系统是计算机硬件和软件的接口部分,是全部机器指令的集合。

 

2.什么叫寻址方式?为什么要学习寻址方式?

答:寻址方式:指确定本条指令的数据地址以及下一条将要执行的指令地址的方法,它与硬件结构紧密相关,而且直接影响指令格式和指令功能。学习寻址方式是为了找到指令中参与操作的数据,然后根据指令,得出结果。

 

3.什么是指令字长、机器字长和存储字长?

答:指令字长:是指机器中二进制代码的总位数。指令字长取决于从操作码的长度、操作数地址长度和操作数地址的个数,不同指令的字长是不同的。

机器字长:是指计算机进行一次整数运算所能处理的二进制数据的位数(整数运算即定点整数运算)。机器字长也就是运算器进行定点数运算的字长,通常也是CPU内部数据通路的宽度。即字长越长,数的表示范围也越大,精度也越高,机器字长也会影响机器的运算速度。

存储字长:一个存储单元存储一串二进制代码(存储字),这串二进制代码的位数称为存储字长,存储字长可以使8位、16位、32位等。

 

4.零地址指令的操作数来自哪里?各举一例说明。

答:零地址指令的操作数来自ACC,为隐含约定。

在一地址指令中,另一个操作数的地址通常可采用ACC隐含寻址方式获得。

 

5.对于二指令而言,操作数的物理地址可安排在什么地方?举例说明。

答:对于二地址指令而言,操作数物理地址可安排在寄存器内、指令中或内存单元等。

 

6.某指令字长为16位,地址码取4位,试提出一种方案,使指令系统有8条三地址指令、16条二地址指令、100条一地址指令。

答:三地址指令格式:

4

4

4

4

OP

A1

A2

A3

指令操作码分配方案:

4位OP

 

0000,

、、、、,

0111,

 

A1,A2,A3;8条三地址指令

1000,0000,

、、、、,、、、、,

1000,1111,

 

A2,A3;16条二地址指令

1001,0000,0000,

、、、、,、、、、,、、、、,

1001,0110,0011,

 

A3;100条一地址指令

 

7.设指令字长为16位,采用扩展操作码技术,每个操作数的地址为6位,如果定义了13条二地址指令,试问还可以安排多少条一地址指令?

答:

4

6

6

OP

A1

A2

设二地址指令格式为该指令系统的基本格式,4位操作码共有16种编码,其中13种用来定义二地址指令,还剩3种可用作扩展标志,如果不考虑零地址指令,该指令系统最多还能安排一地址指令条数=3X2^6=192条。

 

8.某机指令字长 16 位,每个操作数的地址码为 6 位,设操作码长度固定,指令分为零地址、一地址和二地址三种格式。若零地址指令有 M 条,一地址指令有 N 种,则二地址指令最多有几种?若操作码位数可变,则二地址指令最多允许有几种?

解: 1 )若采用定长操作码时,二地址指令格式如下:

4

6

6

OP

A1

A2

设二地址指令有 K 种,则: K=2 4 -M-N

当 M=1 (最小值), N=1 (最小值)时,二地址指令最多有: Kmax= 16-1-1 =14 种

2 )若采用变长操作码时,二地址指令格式仍如 1 )所示,但操作码长度可随地址码的个数而变。此时, K= 2 4  - ( N/2 6  + M/2 12   );

当( N/2 6  + M/2 12   ) 1 时( N/2 6  + M/2 12   向上取整), K 最大,则二地址指令最多有:K max =16-1=15 种(只留一种编码作扩展标志用。)

 

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

答:间接寻址和寄存器间接寻址都可扩大寻址范围,他们形成有效地址的方式类似:间接寻址需要通过访存(若是多次间址还需多次访存)得到有效地址;寄存器间接寻址有效地址不是存放在存储单元中,而是存放于寄存器中,故比间接寻址少访存一次。

 

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

答:(1)都可有效扩大指令寻址范围

(2)基址寻址时,基准地址由基址寄存器给出,地址的改变反应由A地址给出,地址的改变反映在变址值的自动修改上,变址值由变址寄存器给出。

(3)基址寄存器内容通常由系统程序设定,变址寄存器内容通常由用户设定

(4)基址寄存器适用于程序的动态重定位,变址寻址适用于数组或字符串处理,适用场合不同。

 

11. 画出先变址再间址及先间址再变址的寻址过程示意图。

答: 1 )先变址再间址寻址过程简单示意如下:

       EA=[(IX)+A] , IX (IX)+1

2 )先间址再变址寻址过程简单示意如下: EA=(IX)+(A) , IX  (IX)+1

12.画出SUB@R1指令对操作数的寻址及减法过程的流程图。设被减数和结果存放于ACC中,@ 表示间接寻址,R1寄存器的内容为2074H。

答:流程如下:

13.画出ADD*-5指令(*为相对寻址特征)的信息流程图。设另一个操作数和结果存于ACC中,并假设(PC)=4000H。

答:

14.设相对寻址的转移指令占两个字节,第一个字节是操作码,第二个字节是相对位移量,用补码表示,假设当前转移指令第一字节所在的地址为2000H,且CPU每取出一个字节便自动完成(PC)+1—>PC的操作。试问当执行JMP*+8和JMP*-9指令时,转移指令第二字节的内容各为多少?

答:相对寻址的转移指令格式如下:

当执行JMP指令时,指令第二字节的内容不变,PC的内容变为2002H。此时转移指令第二字节内容各为:

A1=+8=0000 1000=08H

A2=-9=1111 0111=F7H

其有效地址各为:

EA1=(PC)+8=2002H+0008H=200AH

EA2=(PC)-9=2002H+FFF7H=1FF9H

15.一相对寻址的转移指令占3个字节,第一字节是操作码,第二三字节为相对位移量,而且数据在存储器中采用以高字节地址为字地址的存放方式,假设PC当前值是4000H,试问结果为0,执行JZ*+35和JZ*-17指令时,该指令的第二三字节的机器代码各为多少?

答:因为结果为0,所以JZ跳转会实现,PC当前值为4000H执行JZ*+35时,要跳转位移量为+35,转换成补码为23H,高位补0,所以第二字节为00H,三字节为23H。执行JZ*-17时,要跳转的位移量为-17,转换为补码为EFH,高位补1,所以第二字节为FFH,第三字节为EFH。

 

16.  某机主存容量为 4M 16 位,且存储字长等于指令字长,若该机指令系统可完成 108 种操作,操作码位数固定,且具有直接、间接、变址、基址、相对、立即等六种寻址方式,试回答:( 1 )画出一地址指令格式并指出各字段的作用;

( 2 )该指令直接寻址的最大范围;

( 3 )一次间址和多次间址的寻址范围;

( 4 )立即数的范围(十进制表示);

( 5 )相对寻址的位移量(十进制表示);

( 6 )上述六种寻址方式的指令哪一种执行时间最短?哪一种最长?为什么?哪一种便于程序浮动?哪一种最适合处理数组问题?

( 7 )如何修改指令格式,使指令的寻址范围可扩大到 4M ?

( 8 )为使一条转移指令能转移到主存的任一位置,可采取什么措施?简要说明之。

答:( 1 )单字长一地址指令格式:

                          

OP ( 7 位)

M ( 3 位)

A ( 6 位)

 

 

 

 OP 为操作码字段,共 7 位,可反映 108 种操作;

 M 为寻址方式字段,共 3 位,可反映 6 种寻址操作;

 A 为地址码字段,共 16-7-3 =6 位。

( 2 )直接寻址的最大范围为 2 6 =64 。

( 3 )由于存储字长为 16 位,故一次间址的寻址范围为 2 16 ;若多次间址,需用存储字的最高位来区别是否继续间接寻址,故寻址范围为 2 15 。

( 4 )立即数的范围为 -32——31 (有符号数),或 0 ——63 (无符号数)。

( 5 )相对寻址的位移量为 -32——31 。

( 6 )上述六种寻址方式中,因立即数由指令直接给出,故立即寻址的指令执行时间最短。间接寻址在指令的执行阶段要多次访存 ( 一次间接寻址要两次访存,多次间接寻址要多次访存 ) ,故执行时间最长。变址寻址由于变址寄存器的内容由用户给定,而且在程序的执行过程中允许用户修改,而其形式地址始终不变,故变址寻址的指令便于用户编制处理数组问题的程序。相对寻址操作数的有效地址只与当前指令地址相差一定的位移量,与直接寻址相比,更有利于程序浮动。

( 7 ) 方案一 :为使指令寻址范围可扩大到 4M ,需要有效地址 22 位,此时可将单字长一地址指令的格式改为双字长,如下图示:

 

OP ( 7 位)

MOD ( 3 位)

A (高 6 位)

A (低 16 位)

 

 

 

 

 

方案二 :如果仍采用单字长指令( 16 位)格式,为使指令寻址范围扩大到 4M ,可通过段寻址方案实现。安排如下:  

硬件设段寄存器 DS ( 16 位),用来存放段地址。在完成指令寻址方式所规定的寻址操作后,得有效地址 EA ( 6 位),再由硬件自动完成段寻址,最后得 22 位物理地址。   即:物理地址 = ( DS ) 2 6  + EA

注:段寻址方式由硬件隐含实现。在编程指定的寻址过程完成、 EA 产生之后由硬件自动完成,对用户是透明的。

方案三: 在采用单字长指令( 16 位)格式时,还可通过页面寻址方案使指令寻址范围扩大到 4M 。安排如下:

硬件设页面寄存器 PR ( 16 位),用来存放页面地址。指令寻址方式中增设页面寻址。当需要使指令寻址范围扩大到 4M 时,编程选择页面寻址方式,则: EA = ( PR )‖ A  (有效地址 = 页面地址“拼接” 6 位形式地址),这样得到 22 位有效地址。

( 8 )为使一条转移指令能转移到主存的任一位置,寻址范围须达到 4M ,除了采用 (7)  方案一中的双字长一地址指令的格式外,还可配置 22 位的基址寄存器或 22 位的变址寄存器,使 EA = (BR) + A  ( BR 为 22 位的基址寄存器 ) 或 EA = ( IX ) + A(IX 为 22 位的变址寄存器 ) ,便可访问 4M 存储空间。还可以通过 16 位的基址寄存器左移 6 位再和形式地址 A 相加,也可达到同样的效果。

总之,不论采取何种方式,最终得到的实际地址应是 22 位。

 

17.举例说明哪几种寻址方式在指令的执行阶段不访问存储器,哪几种寻址方式在指令的执行阶段只需访问一次存储器?完成什么样的指令,包括取指令在内共访问存储器4次?

答:一地址指令在执行阶段不访存的寻址方式有:寄存器寻址、立即寻址;

一地址指令在执行阶段只访问一次的寻址方式有:寄存器间接寻址、直接寻址、基址寻址、变址寻址、相对寻址、页面寻址;

包括取指在共访存四次的指令有:二重间址的一地址指令,一重间址的二地址指令,当另一个操作数采用直接、基址、变址、相对、页面、寄存器间接寻址时。

 

18.某机器共能完成78种操作,若指令字长为16位,试问一地址格式的指令地址码可取几位?若想指令寻址范围扩大到2^16,可采取什么方法?举出三种不同的例子加以说明。

答:64=32 ;

间址位 I 占 1 位,当 I=0 ,存储器寻址的操作数为直接寻址,当 I=1 时为间接寻址;

形式地址 A 占 20 位,可以直接寻址 2 20 字。

( 2 )如采用基址寻址,则指令格式中应给出基址寄存器号,以指定哪一个通用寄存器用作基址寄存器。指令格式变为:

 

OP ( 6 位)

源 R ( 5 位)

I ( 1 位)

X ( 1 位)

目标 R ( 5 位)

A ( 14 位)

 

 

 

 

 

 

增加寻址特征位 X ,当 X=1 时,以目标寄存器 R 作为基址寄存器进行基址寻址。

基址寻址可访问存储空间为: 2 32 字。

 

20.什么是RISC?简述它的主要特点。

答:RISC即是精简指令集计算机。特点:

(1)选取使用频度高的简单指令

(2)指令长度固定、格式少、寻址方式少

(3)只有存数取数指令访存,其它指令不访存

(4)CPU内有多个通用寄存器

(5)采用流水线技术,大部分指令一个时钟完成

(6)控制器采用组合逻辑实现

(7)采用优化的编译程序

 

21.试比较RISC和CISC。

答:(1)RISC更能充分利用VLSI芯片的面积

(2)RISC更能提高计算及运行速度,指令数、指令格式、寻址方式少,通用寄存器多,采用组合逻辑,便于指令流水

(3)RISC便于设计,可减低成本,提高可靠性

(4)RISC有利于编译程序代码优化

(5)RISC不易实现指令系统兼容

 

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3