计算机组成原理前3章课后习题参考答案 下载本文

白中英第五版计算机组成原理课后习题参考答案

第一章 计算机系统概述

4、冯?诺依曼型计算机的主要设计思想是什么?它包括哪些主要组成部分? 答:冯?诺依曼型计算机的主要设计思想是存储程序和程序控制,其中存储程序是指将程序和数据事先存放到存储器中,而程序控制是指控制器依据存储的程序来控制全机协调地完成计算任务。总体来讲,存储程序并按地址顺序执行,这就是冯?诺依曼型计算机的主要设计思想。

5、什么是存储容量?什么是单元地址?什么是数据字?什么是指令字? 答:见教材P8和P10。

7、指令和数据均存放在内存中,计算机如何区分它们是指令还是数据? 答:见教材P10。

第二章 运算方法和运算器

1、写出下列各整数的原码、反码、补码表示(用8位二进制数)。 -35 -128 -127 -1 真值 -0010 0011 -1000 0000 -0111 1111 -0000 0001 原码 1010 0011 无法表示 1111 1111 1000 0001 反码 1101 1100 无法表示 1000 0000 1111 1110 补码 1101 1101 1000 0000 1000 0001 1111 1111 3、有一个字长为32位的浮点数,符号位1位,阶码8位,用移码表示,尾数23位,用补码表示,基数为2,请写出: (1)最大数的二进制表示

阶码用移码表示,题中并未说明具体偏移量,故此处按照移码的定义,即采用偏移量为27=128,则此时阶码E的表示范围为0000 0000~1111 1111,即0~255,则在上述条件下,浮点数为最大数的条件如下:

符号S为正(1) 0 阶码E最大(8) 1111 1111 尾数M最大正数(23) 1111 1111 1111 1111 1111 111 所以最大数的二进制表示为:0 1111 1111 1111 1111 1111 1111 1111 1111 111

对应十进制真值为:+(1-2-23)×2127 (2)最小数的二进制表示 浮点数为最小数的条件如下:

符号S为负(1) 1 阶码E最大(8) 1111 1111 尾数M最小负数(23) 0000 0000 0000 0000 0000 000 所以最小数的二进制表示为:1 1111 1111 0000 0000 0000 0000 0000 000 对应十进制真值为:-1×2127 (3)规格化数所表示数的范围

规格化要求尾数若为补码表示,则符号位和最高有效位符号必须不同。 (A)浮点数为最大正数的条件如下: 符号S为正(1) 0 阶码E最大(8) 1111 1111 尾数M最大正数(23) 1111 1111 1111 1111 1111 111 所以最大正数的二进制表示为:0 1111 1111 1111 1111 1111 1111 1111 1111 111 对应十进制真值为:+(1-2-23)×2127

(B)浮点数为最小正数的条件如下: 符号S为正(1) 0 阶码E最小(8) 0000 0000 尾数M最小正数(23) 1000 0000 0000 0000 0000 000 所以最小正数的二进制表示为:0 0000 0000 1000 0000 0000 0000 0000 000 对应十进制真值为:+2-1×2-128=+2-129

(C)浮点数为最大负数的条件如下: 符号S为负(1) 1 阶码E最小(8) 0000 0000 尾数M最大负数(23) 0111 1111 1111 1111 1111 111 所以最大负数的二进制表示为:0 0000 0000 0111 1111 1111 1111 1111 111 对应十进制真值为:-(2-1+2-23)×2-128

(D)浮点数为最小负数的条件如下: 符号S为负(1) 1 阶码E最大(8) 1111 1111 尾数M最小负数(23) 0000 0000 0000 0000 0000 000 所以最小负数的二进制表示为:0 0000 0000 0000 0000 0000 0000 0000 000 对应十进制真值为:-1×2127

所以,规格化数所表示数的范围如下:

正数 +2-129~+(1-2-23)×2127负数 -2127 ~-(2-1+2-23)×2-128

4、将下列十进制数表示成IEEE754标准的32位浮点规格化数。(2)-27/64 解:-27/64D=-0.011011B=-1.1011×2-2,则阶码E=-2+127=125,则浮点数为:

符号S(1) 1 阶码E(8) 0111 1101 尾数M(23) 1011 0000 0000 0000 0000 000 5、已知x和y,用变形补码计算x+y,同时指出结果是否溢出。 (2)x=11011,y=-10101

解:[x]变补=00,11011,[y]变补=11,01011,则

[x]变补 00,11011

+[y]变补

11,01011 100,00110

最高进位1丢掉,则[x+y]变补=00,00110,符号位为00,表示结果为正数,且无溢出,即:x+y=+00110 (3)x=-10110,y=-00001

解:[x]变补=11,01010,[y]变补=11,11111,则

[x]变补 11,01010

+[y]变补 11,11111 111,01001

最高进位1丢掉,则[x+y]变补=11,01001,符号位为11,表示结果为负数,且无溢出,即:x+y=-10111

6、已知x和y,用变形补码计算x-y,同时指出结果是否溢出。 (1)x=11011,y=-11111

解:[x]变补=00,11011,[y]变补=11,00001,[-y]变补=00,11111,则

[x]变补 00,11011

+[- y]变补 00,11111 01,11010

则[x-y]变补=01,11010,符号位为01,表示结果为正数,且发生正溢。 (2)x=10111,y=11011

解:[x]变补=00,10111,[y]变补=00,11011,[-y]变补=11,00101,则

[x]变补 00,10111

+[- y]变补

11,00101

11,11100

则[x-y]变补=11,11100,符号位为11,表示结果为负数,且无溢出,即x-y=-00100。 7、用原码一位乘计算x×y。(2)x=-11111,y=-11011

解:根据原码一位乘的运算规则,乘积的符号位单独处理x0?y0,数值部分为绝对值相乘x*.y*,其中数值部分的运算如下: 部分积 0,00000 +0,11111 0,11111 0,01111 +0,11111 1,01110 0,10111 +0,00000 0,10111 0,01011 +0,11111 1,01010 0,10101 +0,11111 1,10100 0,11010 00101 01011 10111 01110 11101 乘数 11011 说明 部分积初态z0=0 +x* 右移一位,得z1 +x* 右移一位,得z2 +0 右移一位,得z3 +x* 右移一位,得z3 +x* 右移一位,得z3 由上可得,数值部分的乘积为:x*.y*=0,1101000101,而乘积符号位x0?y0=1?1=0,则[x.y]原=0,1101000101,即x×y=+1101000101。

8、用加减交替法计算x÷y(先乘1个比例因子变成小数)。(2)x=-01011,y=11001 解:按照加减交替原码除法的运算规则,符号位单独处理x0?y0,商值由两数绝

对值相除x*/y*求得,且当余数Ri>0,商1,做2Ri-y*运算,当余数Ri<0,商0,做2Ri+y*运算。

根据定点除法的约束条件,小(整)数定点机中,被乘数、乘数和商必须均为小(整)数。而题中被乘数和乘数均为整数,且被乘数小于乘数,两者相除结果为小数,不符合整数定点机的要求,故可先将被乘数和乘数乘以一个比例因子2-5,将被乘数和乘数变为小数,两者相除商也为小数,则符合小数定点机的要求。乘以比例因子2-5后,可得:[x]原=1.01011,[y]原=0.11001,[x*]补=0.01011,[y*]补=0.11001,[-y*]补=1.00111,则加减交替法的运算过程如下:

被除数(余数) 0.01011 +1.00111 1.10010 1.00100 +0.11001 1.11101 1.11010 +0.11001 0.10011 1.00110 +1.00111 0.01101 0.11010 +1.00111 0.00001 0.00010 +1.00111 1.01001 +0.11001 001110 00111 00111 0011 0011 001 001 00 00 0 0 商 0.00000 +[-y*]补(减除数) 余数为负,商0 左移一位 +[y*]补(加除数) 余数为负,商0 左移一位 +[y*]补(加除数) 余数为正,商1 左移一位 +[-y*]补(减除数) 余数为正,商1 左移一位 +[-y*]补(减除数) 余数为正,商1 左移一位 +[-y*]补(减除数) 余数为负,商0(最后一次商0,说明不够减而减了,此处须再恢复余数) +[y*]补(加除数) 说明 0.00010 0.00000 00010 因余数前后共左移了5次 须右移5次,才得真正余数 由上可得,商值为:x*/y*=0.01110,而符号位x0?y0=1?0=1,则[x÷y]原=1.01110,即x÷y=-0.01110,余数为0.00000 00010。

9、设阶码3位,尾数6位,按浮点运算方法,完成下列取值的[x+y]、[x-y]运算。 (2)x=2-101×(-0.010110),y=2-100×(0.010110)

解:[x]补=11,011;11.101010,[y]补=11,100;00.010110 (A)求[x+y]

?对阶:[ΔE]补=[Ex]补-[Ey]补=11,011 + 00,100 = 11,111

由上式可得[ΔE]补=11,111,即阶差为-1,所以Mx-->1, Ex+1 所以,[x]补’=11,100;11.110101(0)

?尾数求和:[Mx]补’=11.110101(0)对阶后的尾数[Mx]补’ + [My]补=00.010110

= 100.001011(0)

即[x+y]补=11,100;00.001011,因尾数不符合规格化要求,需左规。 ?规格化:尾数左规2次后得:[x+y]补=11,010;00.101100

④舍入处理:采用0舍1入法,因对阶时尾数右移丢0,故可舍去。 ⑤溢出判断:因阶码符号位为11,故浮点数无溢出。 所以最终结果为x+y=+0.101100×2-110 (B)求[x-y]

?对阶:[ΔE]补=[Ex]补-[Ey]补=11,011 + 00,100 = 11,111

由上式可得[ΔE]补=11,111,即阶差为-1,所以Mx-->1, Ex+1 所以,[x]补’=11,100;11.110101(0)

?尾数求和:[Mx]补’=11.110101(0)对阶后的尾数[Mx]补’ + [- My]补=11.101010

= 111.011111(0)

即[x-y]补=11,100;11.011111,尾数符合规格化要求,无需规格化。 ?规格化:无需规格化

④舍入处理:采用0舍1入法,因对阶时尾数右移丢0,故可舍去。 ⑤溢出判断:因阶码符号位为11,故浮点数无溢出。 所以最终结果为x-y=-0.100001×2-100 12、用IEEE 32位浮点格式表示如下的数: (2)-1.5

解:-1.5D=-1.1B=-1.1×20,所以阶码E=0+127=127,则有:

符号位(1) 1 十六进制表示 (4)1/16

解:1/16D=0.0001B=1.0×2-4,所以阶码E=-4+127=123,则有:

符号位(1) 0 十六进制表示 阶码E(8) 0111 1011 尾数M(23) 000 0000 0000 0000 0000 0000 3D800000 阶码E(8) 0111 1111 尾数M(23) 100 0000 0000 0000 0000 0000 BFC00000 13、下列各数使用了IEEE 32位浮点格式,相等的十进制数是什么? (2)0 0111 1110 101 0000 0000 0000 0000 0000

解:根据IEEE 32位浮点格式可得,阶码E=0111 1110=126,则e=126-127=-1,所以浮点数为:+1.101×2-1=+0.1101,则对应十进制数为:0.5+0.25+0.0625=0.8125。

第三章 多层次的存储器

1、设有一个具有20位地址和32位字长的存储器,问: (1)该存储器能存储多少个字节信息?(220×32/8=4MB)

(2)如果存储器由512K×8位SRAM芯片组成,需要多少片?(220×32/512K×8=8) (3)需要多少位地址做芯片选择?(存储器由20根地址线,而每片芯片有19根地址线,故需1位地址做芯片选择)

3、用16K×8位的DRAM芯片构成64K×32位存储器,要求: (1)画出该存储器的组成逻辑框图。

解:共需芯片64K×32/16K×8=16片,可先用4片16K×8位的DRAM芯片用于位扩展构成16K×32位存储器,然后再用4组16K×32位存储器用于字扩展构成64K×32位存储器,其中,4组16K×32位存储器的片选信号由高位地址A15和A14产生,该存储器的组成逻辑框图如下所示。

其中,16K×32位的存储器的组成逻辑框图如下所示。

(2)设存储器读写周期为0.5μs,CPU在1μs内至少要访问一次。试问采用哪种刷新方式比较合理?两次刷新的最大时间间隔是多少?对全部存储单元刷新一遍所需的实际刷新时间是多少? 解:

5、要求用256K×16位SRAM芯片设计1024K×32位的存储器。SRAM芯片有两个控制端:当CS’有效时,该片选中。当W’/R=1时执行读操作,当W’/R=0时执行写操作。

解:共需SRAM芯片1024K×32/256K×16=8片,可先用2片256K×16位的SRAM芯片用于位扩展构成256K×32位存储器,然后再用4组256K×32位存储器用于字扩展构成1024K×32位存储器,该存储器的组成逻辑框图如下所示。

其中,256K×32位的存储器的组成逻辑框图如下所示。

6、用32K×8位的E2PROM芯片组成128K×16位的只读存储器,试问: (1)数据寄存器多少位?(16位) (2)地址寄存器多少位?(17位)

(3)共需多少个E2PROM芯片?(128K×16/32K×8=8个) (4)画出此存储器组成框图。

解:可先用2片32K×8位的E2PROM芯片用于位扩展构成32K×16位存储器,然后再用4组32K×16位存储器用于字扩展构成128K×16位存储器,该存储器的组成逻辑框图如下所示。

其中,32K×16位的存储器的组成逻辑框图如下所示。

7、某机器中,已知配有一个地址空间为0000H~3FFFH的ROM区域。现在再用一个RAM芯片(8K×8)形成40K×16位的RAM区域,起始地址为6000H。假设RAM芯片有CS’和WE’信号控制端。CPU的地址总线为A15~A0,数据总线为D15~D0,控制信号为R/W(读/写),MREQ’(访存),要求: (1)画出地址译码方案。

(2)将ROM和RAM同CPU连接。

解:RAM区域共需RAM芯片40K×16/8K×8=10片,可先用2片8K×8位的RAM芯片用于位扩展构成8K×16位存储器,然后再用5组8K×16位存储器用于字扩展构成40K×16位存储器,该存储器的组成逻辑框图可参照5、6题。

(A)为了将ROM和RAM同CPU连接,需先将十六进制地址转换为二进制地址码,并确定ROM容量,以及观察ROM和RAM地址码的特点。 A15~A12 0000 ... 0011 0100 ... 0101 0110 ... 0111 1000 ... 1001 1010 ... 1011 1100 ... 1101 1110 A11~A8 0000 ... 1111 0000 ... 1111 0000 ... 1111 0000 ... 1111 0000 ... 1111 0000 ... 1111 0000 A7~A4 0000 ... 1111 0000 ... 1111 0000 ... 1111 0000 ... 1111 0000 ... 1111 0000 ... 1111 0000 A3~A0 0000 ... 1111 0000 ... 1111 0000 ... 1111 0000 ... 1111 0000 ... 1111 0000 ... 1111 0000 RAM(0),8K×16 2片8K×8位扩展 RAM(1),8K×16 2片8K×8位扩展 RAM(2),8K×16 2片8K×8位扩展 RAM(3),8K×16 2片8K×8位扩展 RAM(4),8K×16 空区域 说明 ROM,16K×16 ... 1111 ... 1111 ... 1111 ... 1111 2片8K×8位扩展 (B)分配CPU地址线:将CPU的低13位地址A12~A0与ROM和2片8K×8位RAM的地址线相连。剩下的高位地址A13~A15与访存信号共同产生芯片的片选信号。

(C)片选信号的形成:观察上面的地址码发现,当访存信号MREQ’=0,而且高位地址A13~A15为000(或001)、011、100、101、110、111时,分别选择ROM、RAM(0)、RAM(1)、RAM(2)、RAM(3)和RAM(4)芯片,故,可采用一个3-8译码器来实现上述片选关系,最后得ROM和RAM与CPU的连接如下图所示。

【说明】上图假设ROM区域由2片8K×16位芯片进行字扩展构成,若ROM区域由1片16K×16位芯片构成,则地址线连接会不同。

8、设存储器容量为64M,字长为64位,模块数m=8,分别用顺序和交叉方式进行组织。存储周期T=100ns,数据总线宽度为64位,总线传送周期τ=50ns。求:顺序存储器和交叉存储器的带宽各是多少? 解:假设连续读出m=8个字,则:

顺序存储器和交叉存储器的数据信息量为:q=8×64=512位 顺序存储器所需要的时间为:t1=m×T=8×100ns=800ns=8×10-7s 故顺序存储器的带宽为:W1=q/t1=512/(8×10-7)=64×107(bit/s)

交叉存储器所需要的时间为t2=T+(m-1)×τ=100ns+(8-1)×50ns=450ns=4.5×10-7s

故交叉存储器的带宽为W2=q/t2=512/(4.5×10-7)=113.8×107(bit/s)

9、CPU执行一段程序时,cache完成存取的次数为2420次,主存完成存取的次数为80次,已知cache存储周期为40ns,主存存储周期为240ns,求cache/主存系统的效率和平均访问时间。

解:命中率:h=Nc/(Nc+Nm)=2420/(2420+80)=0.968

平均访问时间:ta=htc+tm(1-h)=0.968×40ns+0.032×240=46.4ns cache/主存系统的效率:e=tc/ta=40/46.4=86.2%

10、已知Cache存储周期为40ns,主存存储周期200ns,Cache/主存系统平均访问时间为50ns,求Cache的命中率为多少? 解:根据平均访问时间公式ta=htc+(1-h)tm,得: 命中率h=(tm-ta)/(tm-tc)=(200-50)/(200-40)=150/160=0.9375

11、某机器采用四体交叉存储器,今执行一段小循环程序,此程序放在存储器的连续地址单元中。假设每条指令的执行时间相等,而且不需要到存储器存取数据,请问在下面两种情况中(执行的指令数相等),程序运行的时间是否相等? (1)循环程序由6条指令组成,重复执行80次;

解:设总线传送周期为τ,取指周期T,执行指令时间为t,则: 程序运行时间为:ta=(T+(6-1)τ+6t)×80

(2)循环程序由8条指令组成,重复执行60次。

解:设总线传送周期为τ,取指周期T,执行指令时间为t,则: 程序运行时间为:ta=(T+(8-1)τ+8t)×60

13、一个组相联Cache由64个行组成,每组4行。主存储器包含4K个块,每块128字。请表示内存地址的格式。 解:块大小2w=128字=27,故w=7

Cache有64行,每组4行,则组数2d=64/4=16=24,故d=4 主存块数2s=4K=212,故s=12 标记位有s-d=12-4=8位

则组相联映射下的主存地址格式如下:

标记s-d 8 组号d 4 块内字号w 7 14、某机主存容量1MB,字长1B,块大小16B,Cache容量64KB,若Cache采用直接映射方式,请给出2个不同标记的内存地址,它们映射到同一个Cache行。

解:块大小2w=16B,故w=4

Cache容量64KB,每块16B,行数2r=4K=212,故r=12

主存容量1MB=220=2s+w,故s+w=20,则s=20-w=16,故标记位s-r=16-12=4 直接映射下的主存地址格式如下:

标记s-r 4 行号r 12 块内字号w 4 两个满足题目要求的主存地址:0000 1001 0000 1110 0000

0001 1001 0000 1110 0000

15、假设主存容量16M×32位,Cache容量64K×32位,主存与Cache之间以每块4×32位大小传送数据,请确定直接映射方式的有关参数,并画出主存地址格式。

解:块大小2w=4,故w=2

Cache容量64K×32位,块大小为4×32位,则行数为2r=64K/4=16K=214,故r=14 主存16M×32位,块大小为4×32位,则块数2s=16M/4=4M=222,故s=22 标记位s-r=22-14=8位

直接映射下的主存地址格式如下:

标记s-r 8 行号r 14 块内字号w 2 19、某虚拟存储器采用页式存储管理,使用LRU页面替换算法。若每次访问在一个时间单位内完成,页面访问的序列如下:1,8,1,7,8,2,7,2,1,8,3,8,2,1,3,1,7,1,3,7。已知主存只允许存放4个页面,初始状态时4个页面是全空的,则页面失效次数是?

解:LRU(近期最少使用):每页设置计数器,每命中1次,该页计数器清零,其他各页计数器加1,需要替换时,将计数值最大的页换出。

页面访问序列 1 1 3 3 8 1 2 8 8 1 8 8 3 1 2 中 1 1 8 中 2 2 8 3 1 中 7 7 1 8 1 1 2 8 3 中 8 8 7 1 中 3 3 1 2 8 中 2 2 8 7 1 1 1 3 2 8 中 7 7 2 8 1 中 7 7 1 3 2 2 2 7 8 1 中 1 1 7 3 2 中 1 1 2 7 8 中 3 3 1 7 2 中 8 8 1 2 7 中 7 7 3 1 2 中 页面1 页面2 页面3 页面4 命中否 页面访问序列 页面1 页面2 页面3 页面4 命中否 根据上表可知,页面失效次数为6次。

21、设某系统采用页式虚拟存储管理,页表放在主存中。 (1)如果一次内存访问使用50ns,访问一次主存需用多少时间?

解:若页表放在主存中,则要实现一次主存访问需两次访问主存,一次是访问页表,确定所存取页面的物理地址,第二次才根据该地址存取页面数据。故访问主存时间为50ns×2=100ns

(2)如果增加TLB,忽略查找TLB表项占用时间,并且75%的页表访问命中TLB,内存的有效访问时间是多少? 解:50ns×75%+100ns×(1-75%)=62.5ns

22、某计算机的存储系统由Cache、主存和磁盘都成。Cache的访问时间是15ns;如果被访问的单元在主存中但不在Cache中,需要用60ns的时间将其装入Cache,然后再进行访问;如果被访问的单元不在主存中,则需要10ms的时间将其从磁盘中读入主存,然后再装入Cache中并开始访问。若Cache的命中率为90%,主存的命中率为60%,求该系统中访问一个字的平均时间。 解:平均访问时间:

ta=15ns×90%+(15+60)ns×(1-90%)×60%+(10000000+60+15)ns×(1-90%)×(1-60%) =13.5ns+4.5ns+400003ns=400021ns

24、在一个分页虚存系统中,用户虚地址空间为32页,页长1KB,主存物理空间为16KB。已知用户程序有10页长,若虚页0、1、2、3已经被分别调入到主存8、7、4、10页中,请问虚地址0AC5和1AC5(十六进制)对应的物理地址是多少?

解:页长1KB,所以页内地址为10位。

主存物理空间:16页,页面号0~15,共14位地址码(其中页面号4位,页内地址10位)。

用户虚空间:32页,页面号为0~31,共15位地址码(其中页面号5位,页内地址10位)。

0AC5H=0000 1010 1100 0101B,页面号为2,已被调入主存页4,物理地址页面号为4,页内地址与虚地址的页内地址相同,故01 0010 1100 0101=12C5H。 1AC5=0001 1010 1100 0101B,页面号为6,未被调入主存页,故无物理地址,发生缺页中断。

第四章 指令系统

1、指令字长最好是半字长、单字长或双字长,故不合理,设为16位比较合适。 2、假设某计算机指令长度为32位,具有双操作数、单操作数、无操作数三类指令形式,指令系统共70条指令,请设计满足要求的指令格式。 解:70条指令,至少需要操作码7位,则: 双操作数指令格式为:

操作码(7位) 单操作数指令格式为:

操作码(7位) 无操作数指令格式为:

操作码(7位) 操作数A(25位) 操作数A1(12位) 操作数A2(12位) 3、指令格式结构如下所示,试分析指令格式及寻址方式特点。

15 10 7 4 3 0

OP 目标寄存器 源寄存器 解:(1)单字长二地址指令。

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

(3)源寄存器和目的寄存器都是通用寄存器,可分别指定24=16个,两个操作数均在寄存器中,所以是RR型指令。 (4)寄存器寻址。

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

15 10 7 4 3 0

OP 源寄存器 偏移量(16位) 解:(1)双字长二地址指令。

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

(3)源寄存器和变址寄存器都是通用寄存器,可分别指定24=16个,两个操作数分别在寄存器和存储单元中,所以是RS型指令。 (4)寄存器寻址和变址寻址。

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

15 12 11 9 8 6 5 3 2 0

OP 寻址方式 寄存器 寻址方式 寄存器 变址寄存器 <---------------源地址---------------> <--------------目标地址-------------> 解:(1)单字长二地址指令。

(2)操作码字段OP可指定24=16条指令。

(3)源寄存器和目的寄存器都是通用寄存器,可分别指定23=8个。 (4)寻址方式共23=8种。

6、一种单地址指令格式如下所示,其中I为间接特征,X为寻址模式,D为形式地址。I,X,D组成该指令的操作数有效地址E。设R为变址寄存器,R1位基址寄存器,PC为程序计数器,请在下表中第一列位置填入适当的寻址方式名称。 解:课堂上讲过。

7、某计算机字长为32位,主存容量为64KB,采用单字长单地址指令,共有40条指令。试采用直接、立即、变址、相对四种寻址方式设计指令格式。 解:40条指令共需6位操作码,四种寻址方式需2位寻址特征位,主存容量为

64KB,则需地址码16位。

OP(6) 寻址特征位(2) 地址A(24) 寻址特征位为00,直接寻址,地址A为有效地址 寻址特征位为01,立即寻址,地址A为立即数

寻址特征位为10,变址寻址,地址A为偏移量,有效地址为(Rx)+A 寻址特征位为11,相对寻址,地址A为偏移量,有效地址为(PC)+A 其中,Rx为变址寄存器。

8、某机字长为32位,主存容量为1MB,单字长指令,有50种操作码,采用寄存器寻址、寄存器间接寻址、立即、直接等寻址方式。CPU中有PC、IR、AR、DR和16个通用寄存器。问: (1)指令格式如何安排? (2)能否增加其他寻址方式?

解:(1)50种操作码占6位(26=64),4种寻址方式占2位,余24位为D字段。

OP(6) X(2) D(24) X=00→寄存器寻址方式,D字段仅使用4bit选择16个通用寄存器;

X=01→寄存器间接寻址方式,D字段仅使用4bit选择16个通用寄存器,EA=(RX) X=10→立即寻址方式,D字段给出24位立即数;

X=11→直接寻址方式,D字段可给出24位内存地址(但只用20位);

(2)寻址模式字段X可变为3位,从而可支持更多的寻址方式。由于CPU中给定的寄存器中尚可使用PC,故可增加相对寻址方式,其有效地址E=PC+D,如不用相对寻址,还可使用间接寻址,此时有效地址E=(D)。

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

解:64种操作需要6位,寄存器编号需要4位,(且看下回分解O(∩_∩)O哈!)

第五章 中央处理器

第六章 总线

第七章 输入输出系统