计算机组成原理第五版 白中英(详细)第4章习题参考答案 联系客服

发布时间 : 星期五 文章计算机组成原理第五版 白中英(详细)第4章习题参考答案更新完毕开始阅读0c1c407cb307e87101f69672

第4章习题参考答案

第4章习题参考答案

1.ASCII码是7位,如果设计主存单元字长为32位,指令字长为12位,是否合理?为什么?

答:不合理。指令最好半字长或单字长,设16位比较合适。一个字符的ASCII是7位,如果设计主存单元字长为32位,则一个单元可以放四个字符,这也是可以的,只是在存取单个字符时,要多花些时间而已,不过,一条指令至少占一个单元,但只占一个单元的12位,而另20位就浪费了,这样看来就不合理,因为通常单字长指令很多,浪费也就很大了。

2.假设某计算机指令长度为32位,具有双操作数、单操作数、无操作数三类指令形式,指令系统共有70条指令,请设计满足要求的指令格式。

答:字长32位,指令系统共有70条指令,所以其操作码至少需要7位。 双操作数指令

7位OP 12位操作数 12位操作数 单操作数指令

7位OP 25位操作数 无操作数指令

7位OP -

3.指令格式结构如下所示,试分析指令格式及寻址方式特点。

15 10 9 8 7 4 3 0 OP - 目标寄存器 源寄存器

答:该指令格式及寻址方式特点如下: (1) 单字长二地址指令。

(2) 操作码字段OP可以指定26=64种操作。

(3) 源和目标都是通用寄存器(可分指向16个寄存器)所以是RR型指令,即两个操作数均在寄存器中。

(4) 这种指令结构常用于RR之间的数据传送及算术逻辑运算类指令。

4.指令格式结构如下所示,试分析指令格式及寻址方式特点。 15 10 9 8 7 4 3 0

15 10 9 8 7 4 3 0 OP - 源寄存器 变址寄存器 偏移量(16位)

答:该指令格式及寻址方式特点如下:

(1) 双字长二地址指令,用于访问存储器。 (2) 操作码字段OP可以指定26=64种操作。

(3) RS型指令,一个操作数在通用寄存器(选择16个之一),另一个操作数在主存中。有效地址可通过变址寻址求得,即有效地址等于变址寄存器(选择16个之一)内容加上位移量。

1

第4章习题参考答案

5.指令格式结构如下所示,试分析指令格式及寻址方式特点。

15 12 11 9 8 6 5 3 2 0 OP 寻址方式 寄存器 寻址方式 寄存器 源地址 目标地址

答:该指令格式及寻址方式特点如下: (1) 该指令为单字长双操作数指令,源操作数和目的操作数均由寻址方式和寄存器构成,寄存器均有8个,寻址方式均有8种。根据寻址方式的不同,指令可以是RR型、RS型、也可以是SS型; (2) 因为OP为4位,所以最多可以有16种操作。

6.一种单地址指令格式如下所示,其中为I间接特征,X为寻址模式,D为形式地址,I、X、D组成该指令的操作数有效地址E,设R为变址寄存器,R1为基值寄存器,PC为程序计数器,请在下表中第一列位置填入适当的寻址方式名称。 寻址方式名称 ① ② ③ ④ ⑤ ⑥ I 0 0 0 0 1 1 X 00 01 10 11 00 10 有效地址E E=D E=(PC)+D E=(R)+D E=(R1)+D E=(D) E=((R1)+D),D=0 答: ① 直接寻址 ② 相对寻址 ③ 变址寻址

④ 基址寻址 ⑤ 间接寻址 ⑥ 先基址后间接寻址

7.某计算机字长为32位,主存容量为64K字,采用单字长单地址指令,共有40条指令。试采用直接、立即、变址、相对四种寻址方式设计指令格式。

答:根据题意,40种指令至少需6位OP;四种寻址方式至少需用2位表示;主存为64K,则地址需要16位,而机器字长为32位,可设计如下格式:

31 26 25 18 17 16 15 0 OP - 寻址方式X D 设: 寻址方式X=00为直接寻址方式,由16位的D直接给出有效地址,EA=D 寻址方式X=01为立即寻址方式,由16位的D直接给出操作数,操作数=D 寻址方式X=10为变址寻址方式,设变址寄存器为IR,则EA=(IR)+D

寻址方式X=11为相对寻址方式,设程序计数器为PC,则EA=(PC)+D(D可正可负)

注:IR和PC的位数与机器的字长相等,均为32位

8.某机字长为32位,主存容量为1M,单字长指令,有50种操作码,采用寄

2

第4章习题参考答案

存器寻址、寄存器间接寻址、立即、直接等寻址方式。CPU中有PC,IR,AR,DR和16个通用寄存器。问: (1)指令格式如何安排?

(2) 能否增加其他寻址方式? 答:

(1) 根据题意,50种操作码至少需6位OP;寻址方式可用2位分别表示最多4种寻址方式;用4位编码选择16个通用寄存器之一作为源操作数或目的操作数,因机器字长为32位,固还剩20位可表示形式地址D

31 26 25 24 23 20 19 0 OP 寻址方式 寄存器 D D字段的寻址方式由25-24位决定,如: 寻址方式字段=00,表示D为寄存器寻址,实际使用D中的4位进行寄存器选择; 寻址方式字段=01,表示寄存器间接寻址,实际使用D中的4位进行寄存器选择; 寻址方式字段=10,表示立即寻址,可使用D的全部确定一个立即数; 寻址方式字段=11,表示直接寻址,20位的D可确定一个存储单元。

(2) 若将形式地址的位数减少,则可以增加其他的寻址方式

9.设某机字长为32位,CPU中有16个32位通用寄存器,设计一种能容纳64种操作的指令系统。如果采用通用寄存器作基址寄存器,则RS型指令的最大存储空间是多少?

答:根据题意,64种操作至少需6位OP;用2位表示四种寻址方式;寄存器16个源操作数和目的操作数各用4位,因机器字长为32位,固还剩16位可表示形式地址D

31 26 25 24 23 20 19 16 15 0 OP 寻址方式 源寄存器 目的寄存器 D 如果采用通用寄存器作基址寄存器,因为寄存器为32,位所以RS型指令可寻址空间最大可达232单元。

10.将表4.9的指令系统设计成二地址格式的指令系统。

答:表4.9中的指令共有29条,故操作码字段需要5位;设这些指令支持9种寻址方式:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、间接寻址、相对寻址、基址寻址、变址寻址、堆栈寻址,则源和目的操作数各需要4位来确定其寻址方式;因字长为32位,故还剩余19位用于表示源和目的操作数的形式地址,可取形式地址为9位,多余的1位可以加在操作码字段。即,格式如下:

31 26 25 22 21 13 12 9 8 0 OP 目的寻址方式 目的操作数 源寻址方式 源操作数

11.从以下有关RISC的描述中,选择正确答案。

A.采用RISC技术后,计算机的体系结构又恢复到早期的比较简单的情况。 B.为了实现兼容,新设计的RISC,是从原来CISC系统的指令系统中挑选一

3

第4章习题参考答案

部分实现的。

C. RISC的主要目标是减少指令数。

D.RISC设有乘、除法指令和浮点运算指令。

答:C

12.根据操作数所在位置,指出其寻址方式(填空): (1) 操作数在寄存器中,为(A)寻址方式。 (2) 操作数地址在寄存器,为(B)寻址方式。 (3) 操作数在指令中,为(C)寻址方式。

(4) 操作数地址(主存)在指令中,为(D)寻址方式。

(5) 操作数的地址,为某一寄存器内容与位移量之和,可以是(E,F,G)寻址方式。

答:A. 寄存器 B. 寄存器间接 C. 立即 D. 直接

E,F,G. 基址、变址、相对

13.将C语句翻译成MIPS R4000汇编语言代码。C赋值语句是: ?=(g+h)-(i+j)

假设变量?、g、h、i、j分别分配给寄存器$s0、$s1、$s2、$s3、$s4。

答:该语句翻译成MIPS R4000汇编语句如下:

add $s5,$s1,$s2 ;将g+h的和存入寄存器$s5中($s5=$s1+$s2) add $s6,$s3,$s4 ;将i+j的和存入寄存器$s6中($s6=$s3+$s4) sub $s0,$s5,$s6 ;将结果存入寄存器$s0中($s0=$s5-$s6)

14.将如下MIPS R4000汇编语言翻译成机器语言指令。 lw $t0,1200($t1) add $t0,$s2,$t0 sw $t0,1200($t1)

答:已知MIPS指令的字段值如下表所示,而且寄存器$s0?$s7对应的寄存器号为16?23(十进制),寄存器$t0?$t7对应的寄存器号为8?15。 MIPS指令的字段值 指令 add(加) sub(减) 立即数加 lw(取字) sw(存字) 格式 op rs rt rd shamt funct R R I I I 0 reg reg reg 0 reg reg reg 8 reg reg ? 35 reg reg ? 43 reg reg ? 0 0 ? ? ? 32 34 ? ? ? 常数或地址 ? ? 常数 address address 由此,可写出以上3条指令翻译成机器语言指令如下表所示。 4

第4章习题参考答案

指令 各字段长度 6位 R型 funct I型 lw $t0,1200($t1) add $t0,$s2,$t0 32 sw $t0,1200($t1) 15.将下面一条ARM汇编语言指令翻译成用十进制和二进制表示的机器语言指令:ADD r5,r1,r2

答:已知ARM汇编指令的指令译码格式如下表所示: ADD、SUB、LDR、STR指令的指令译码格式 指令名称 ADD(加) SUB(减) ADD(立即数加) LDR(取字) STR(存字) cond 14 14 14 14 14 F 0 0 0 1 1 I 0 0 1 ? ? opcode 4 2 4 24 25 S 0 0 0 ? ? Rn reg reg reg reg reg Rd reg reg reg reg operand2 reg reg address(12位) address(12位) 3条指令对应的机器语言 机器语言各字段 6位 5位 5位 5位 5位 op rs rt rd shamt op rs rt address 35 9 8 1200 0 18 8 8 0 43 9 8 1200 reg constant(12位) 由此,可得该指令的十进制和二进制的机器语言如下表所示 ADD r5,r1,r2的机器语言 opcode offset 12 cond F Rn Rd I opcode S operand 12 十进制 14 0 0 4 0 1 5 2 二进制 1110 0 0 100 0 0001 0101 0000 0000 0010 16.将下面C语言翻译成ARM汇编语言代码,C赋值语句是:

?=(g+h)-(i+j)

假设变量?、g、h、i、j分别放在寄存器r0、r1、r2、r3、r4中

答:该语句翻译成ARM汇编语句如下:

add r5,r1,r2 ;将g+h的和存入寄存器r5中(r5=r1+r2) add r6,r3,r4 ;将i+j的和存入寄存器r6中(r6=r3+r4) sub r0,r5,r6 ;将结果存入寄存器r0中(r0=r5-r6)

5