计算机组成原理-郑秋梅 - 习题 联系客服

发布时间 : 星期四 文章计算机组成原理-郑秋梅 - 习题更新完毕开始阅读a65f0421ce2f0066f4332253

第二章

5.分别写出下列十进制数的原码、反码和补码。

7/16,5/16,4/16,1/16,0,-1/16,-4/16,-5/16,-7/16 答: 原码 反码 补码

7/16 0.0111 0.0111 0.0111 5/16 0.0101 0.0101 0.0101 4/16 0.0100 0.0100 0.0100 1/16 0.0001 0.0001 0.0001 +0 0.0000 0.0000 0.0000 -0 1.0000

1.1111 0.0000

-1/16 1.0001 1.1110 1.1111 -4/16 1.0100 1.1011 1.1100 -5/16 1.0101 1.1010 1.1011 -7/16 1.0111 1.1000 1.1001 7.已知下列数的补码表示,请写出它们的真值。

[x]补=0.10100 [x]补=1.0111 [x]补=1.0000

答:二进制真值分别为:0.101,-0.1001,-1。

10.若机器字长16位,以下几种情况能表示的数据范围是多少?

1)无符号整数 2)原码定点小数 3)补码定点小数 4)原码定点整数 5)补码定点整数

答:1)无符号整数 0~216-1 2)原码定点小数 -(1-2-15 ) ~ 1-2-15 3)补码定点小数 -1~ 1-2-15 4)原码定点整数 -(215-1) ~ 215-1 5)补码定点整数 -215 ~ 215-1

14.将下列数转换为IEEE单精度浮点数:

1)28.75

解:1)十进制数28.75转化为二进制数:11100.11B,规格化为11100.11=1.110011×24 该数为正,符号位=0;移码表示的阶码=10000011;尾数=110 0110 0000 0000 0000 0000 以短浮点数格式存储该数为0,10000011, 110 0110 0000 0000 0000 0000=41E60000H 21.某循环冗余校验码的生成多项式为x3+x2+1,若发送信息位 1111 和 1100,则CRC 码分别为什么?接收端收到的CRC 码:0000000、1001111、0010111、1011000中哪些是发生了错误的?

答:A(x)=1111 和1100 左移r=3位后A(x)·x=1111000 和1100000

3

g(x)= x3+x2+1=1101 (r+1=4位) A(x)·x3/g(x)=1011+111/1101 和1001+101/1101

A(x)·x3+R(x)=1111111 和1100101-----这就是2个CRC码

接收到的CRC 码除以生成多项式余数不为0的出错:1001111、1011000。 第三章

9.用原码一位乘法和原码两位乘法分别计算X×Y :

a. X= -0.11011, Y=0.11101

解:a原码一位乘 |X|=00.11011→寄存器B,|Y|=0.11101→寄存器C,0→寄存器A。

运算过程 部分积A 乘数C

+ → +

→ + → + → + →

00.00000 00.11011 00.11011 00.01101 00.00000 00.01101 00.00110 00.11011 01.00001 00.10000 00.11011 01.01011 00.10101 00.11011 01.10000 00.11000

1 1 1 0 1 C5 = 1,+ |X|

部分积右移一位 C4 = 0,+0

部分积右移一位 C3 =1,+ |X|

部分积右移一位 C2 = 1,+ |X|

部分积右移一位 C1 = 1,+ |X|

部分积右移一位

1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 由于两数异号,所以得X×Y = -0.1100001111

10.用补码一位乘法和补码两位乘法分别计算X×Y :

a. X= -0.11011, Y=0.11101

a 补码一位乘 部分积0→寄存器A,[X]补=11.00101→寄存器B,[Y]补=0.11101→寄存器C。用Booth法求解过程如下:

附加位 说明 部分积A 乘数 C

00.00000 0. 1 1 1 0 1 0 C5C6 = 10,+[-X]补 + [-X]补 00.11011

→ →

00.11011 00.01101 11.00101 11.10010 11.11001 00.11011 00.10100

1 0 0 1 1 1 0 1 1 0 1 1 1 0

右移一位 C5C6 = 01,+[X]补 右移一位 C5C6 = 10,+[-X]补 右移一位

+ [X]补

+ [-X]补

→ → →

00.01010 00.00000 00.01010 00.00101 00.00000 00.00101 00.00010 11.00101 11.00111

0 0 1 1

0 1 0 1 1 1 0 0 1 0 1 1 0 0 0 1 0 1 0 0 0 1

C5C6= 11,+0 右移一位 C5C6 = 11,+0 右移一位 C5C6 = 01,+[X]补

最后一步不移位

+ 0

+ 0

+ [X]补

所以[X×Y]补=11.0011110010,X×Y =-0.1100001111

12 用原码加减交替法和补码加减交替法计算X÷Y。a.X= -0.1001 Y=0.1101 解:a 加减交替法 |X|=00.1001,|Y|= 00.1101,|Y|变补 = 11.0011

被除数/部分余数A 商C 说明 0 0.1 0 0 1 0 0 0 00 -|Y|

1 1.0 0 1 1 +|Y|变补 ← +|Y| ← +|Y|变补 ← +|Y| ← +|Y|变补 1 1.1 1 0 0 1 1.1 0 0 0 0 0.1 1 0 1 0 0.0 1 0 1 0 0.1 0 1 0 1 1.0 0 1 1 1 1.1 1 0 1 1 1.1 0 1 0 0 0.1 1 0 1 0 0.0 1 1 1 0 0.1 1 1 0 1 1.0 0 1 1 0 0.0 0 0 1 0 0.0 0 0 1 0 0 0 00 余数<0,商0,左移一位 0 0 0 00 +|Y|

0 0 0 01 余数>0,商1,左移一位 0 0 0 10 -|Y|

0 0 0 10 余数<0,商0,左移一位 0 0 1 00 +|Y|

0 0 1 0 1 余数>0,商1,左移一位 0 1 0 1 0 -|Y|

0 1 0 1 1 余数>0,商1

所以商Q= -0.1011,余数r=-0. 0001×2-4。

a 补码加减交替法 [X]补=11.0111,[Y]补=00.1101,[-Y]补 =11.0011

被除数/余数A 商C 说明 1 1.0 1 1 1 0 0 0 00 [X]补和[Y]补异号,加除数

0 0.1 1 0 1 +[Y]补

+[-Y]补 ← +[Y]补 ←

+[-Y]补

0 0.0 1 0 0 0 0.1 0 0 0 1 1.0 0 1 1 1 1.1 0 1 1 1 1.0 1 1 0 0 0.1 1 0 1 0 0.0 0 1 1 0 0.0 1 1 0 1 1.0 0 1 1

0 0 0 01 0 0 0 10 0 0 0 10 0 0 1 00 0 0 1 01 0 1 0 10 余数和除数同号,商1 ,左移一位 下次减除数

余数和除数异号,商0 左移一位,下次加除数

余数和除数同号,商1 左移一位,下次减除数

← +[Y]补 1 1.1 0 0 1 1 1.0 0 1 0 0 0.1 1 0 1 0 1 0 1 0 1 0 1 0 0 余数和除数异号,商0 左移一位,下次加除数

末尾恒置1

1 1.1 1 1 1 ← 1 1.1 1 1 1 1 0 1 0 1 商[Q]补= 1.0101,余数[r]补 = 11.1111×2-4。 第四章

12.某机器的16位单字长访内指令的格式如下: 4 操作码 2 Mode 1 @ 1 I 8 D 其中,D为立即数或形式地址,补码表示;Mode为寻址模式,0表示立即寻址,1表示直接寻址,2表示基地址寻址,3表示相对寻址;@为间址标志,@=1表示间接寻址,@=0表示直接寻址;I为变址标志,I=1表示变址寻址,I=0表示非变址寻址。

设PC、Rx、Rb分别为指令计数器、变址寄存器、基址寄存器,EA为有效地址,试解答下列问题:

(1)该指令格式能定义多少种不同的操作?

(2)试写出立即寻址、直接寻址、基址寻址、变址寻址、相对寻址方式中计算有效地址EA的表达式。

(3)设基址寄存器为16位,在基址寻址时,可寻址的主存地址范围是多少?

(4)间接寻址时,可寻址的主存地址范围是多少?若采用多重间址,可寻址的主存地址范围又是多少?

解:(1)24=16。

(2)立即寻址:无EA

直接寻址:EA=D;D为指令中给出偏移量 基址寻址:EA=(Rb)+D; 变址寻址:EA=(Rx)+D;

相对寻址:EA=(PC)+D;PC为程序计数器,D为偏移量 (3)0~216-1

(4)间接寻址可寻址的主存地址范围为0~216-1,多重间址可寻址的主存地址范围为0~215-1。

13.某机的指令格式如下:

15 10 9 8 7 0 操作码 Mode D 其中,D为立即数或形式地址,补码表示;Mode为寻址模式,0表示直接寻址,1表示用变址寄存器Rx1进行寻址,2表示用变址寄存器Rx2进行寻址,3表示相对寻址。若已知(PC)=1000H, Rx1=0005H,Rx2=1005H,请计算出下列指令的有效地址:

①8442H ②4545H 解:①8442H=1000 0100 0100 0010

因为Mode=0,所以为直接寻址,EA=D=0042H ②4545H=0100 0101 0100 0101

因为Mode=1,所以用变址寄存器Rx1寻址,EA=(Rx1)+D=0005H+45H=004AH

16.某机字长32位,CPU的寻址范围为1MB,14个通用寄存器,共30条单字长双地址指令,要求有立即、直接、间接、寄存器、基址、相对寻址方式。试设计其指令格式。