《计算机组成原理》第3章习题答案 联系客服

发布时间 : 星期五 文章《计算机组成原理》第3章习题答案更新完毕开始阅读2a5513d528ea81c758f578d7

第3章习题解答

1.指令长度和机器字长有什么关系?半字长指令、单字长指令、双字长指令分别表示什么意思?

解:指令长度与机器字长没有固定的关系,指令长度可以等于机器字长,也可以大于或小于机器字长。通常,把指令长度等于机器字长的指令称为单字长指令;指令长度等于半个机器字长的指令称为半字长指令;指令长度等于两个机器字长的指令称为双字长指令。 2.零地址指令的操作数来自哪里?一地址指令中,另一个操作数的地址通常可采用什么寻址方式获得?各举一例说明。 解:双操作数的零地址指令的操作数来自堆栈的栈顶和次栈顶。双操作数的一地址指令的另一个操作数通常可采用隐含寻址方式获得,即将另一操作数预先存放在累加器中。例如,前述零地址和一地址的加法指令。

3.某机为定长指令字结构,指令长度16位;每个操作数的地址码长6位,指令分为无操作数、单操作数和双操作数三类。若双操作数指令已有K种,无操作数指令已有L种,问单操作数指令最多可能有多少种?上述三类指令各自允许的最大指令条数是多少?

466

解:X= (2一K)×2一[L/2]

4

双操作数指令的最大指令数:2一1。

6

单操作数指令的最大指令数:15×2一l(假设双操作数指令仅1条,为无操作数指令留出1个扩展窗口)。

1612612

无操作数指令的最大指令数:2一2一2。其中2为表示某条二地址指令占用的编码

6

数,2为表示某条单地址指令占用的编码数。此时双操作数和单操作数指令各仅有1条。 4.设某机为定长指令字结构,指令长度12位,每个地址码占3位,试提出一种分配方案,使该指令系统包含:4条三地址指令,8条二地址指令,180条单地址指令。 解:4条三地址指令

000 XXX YYY ZZZ

011 XXX YYY ZZZ 8条二地址指令

100 000 XXX YYY . .

100 111 XXX YYY 180条单地址指令

101 000 000 XXX . .

111 110 011 XXX 5.指令格式同上题,能否构成:

三地址指令4条,单地址指令255条,零地址指令64条?为什么? 解:三地址指令4条

000 XXX YYY ZZZ

. .

011 XXX YYY ZZZ 单地址指令255条

100 000 000 XXX . .

111 111 110 YYY

只能再扩展出零地址指令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位,其余部分为地址码或标志位。

10

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

(2)若采用直接/间接寻址方式,将增加了一位直接/间接标志,地址码部分为9位,

916

指令直接寻址的范围为2=0.5K字,指令可寻址范围为整个主存空间2=64K字。

(3)若采用页面寻址方式,将增加一位z/c(零页/现行页)标志,所以指令直接寻址

916

范围仍为2=0.5K字,指令寻址范围仍为2=64K字。

8

(4)此时将需要@和z/c两个标志位,所以指令直接寻址范围为2=0.25K字,指令寻

16

址范围仍为2=64K字。

11.设某机字长32位,CPU有32个32位的通用寄存器,设计一个能容纳的单字长指令

系统。

(1)如果是存储器间接寻址方式的寄存器一存储器型指令,能直接寻址的空间是多少? (2)如果采用通用寄存器作为基址寄存器,能直接寻址的最大主存空间又是多少?

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

(1)如果是存储器间接寻址方式的寄存器一存储器型指令,操作码6位,寄存器编号5位,

20

间址标志1位,地址码20位,直接寻址的最大主存空间是2字。

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

2字。

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

其中:OP为操作码,R为通用寄存器地址。试说明下列各种情况下能访问的最大主存区域有多少机器字?

(1)A为立即数。

(2)A为直接主存单元地址。 (3)A为间接地址(非多重间址)

(4)A为变址寻址的形式地址,假定变址寄存器为R1(字长为16位)。 解: (1)1个机器字。 (2)256个机器字。 (3)65536个机器字。 (4)65536个机器字。

13.计算下列4条指令的有效地址(指令长度为16位)。 (1)000000Q (2)l00000Q (3)170710Q (4)012305Q

假定:上述4条指令均用八进制书写,指令的最左边是一位间址指示位@(@=O,直接寻址;

15

@=1,间接寻址),且具有多重间访功能;指令的最右边两位为形式地址;主存容量2单元,下表为有关主存单元的内容(八进制)。

解:

(1)000000Q

因为指令的最高位为0,故为直接寻址,EA=A=00000Q。 (2)100000Q

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

(00000)=100002,最高位仍为1,继续间接寻址,(00002)=054304,其最高位为0,表示已经找到有效地址,EA=54304Q。 (3)170710Q

因为指令的最高位为1,故指令为间接寻址。(00010)=100005,最高位仍为1,继续间接寻址。(00005)=100001,最高位仍为1,继续间接寻址。(00001)=046710,其最高位为0,表示已找到有效地址,EA=46710Q。

(4)012305Q

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

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

其中:

Bitll=1:间接寻址;

Bit8=1:变址寄存器I1寻址; Bit7=1:变址寄存器I2寻址;

Bit6(零页/现行页寻址):Z/C=0,表示O页面;Z/C=1,表示现行页面,即指令所在页面。

1266

若主存容量为2个存储单元,分为2个页面,每个页面有2个字。 设有关寄存器的内容为 (PC)=0340Q (11)=11llQ (12)=0256Q 试计算下列指令的有效地址。 (1)1046Q (2)2433Q (3)32150

(4)1111Q 解:

(1)1046Q=001 000 100 110

因为4个标志位均为0,故为直接寻址,EA=A=0046Q。 (2)2433Q一010 100 011 011

因为Bit8(I1)=1,故为变址寄存器1寻址,EA=(I1)+A=1111+33=1144Q。 (3)3215Q=011 010 001 101

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

因为Bit6(z/C)=1,故为当前页寻址,EA=(PC)H∥A=03∥11=0311Q。 15.假定指令格式如下: ,

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