发布时间 : 星期四 文章计算机组成原理-郑秋梅 - 习题更新完毕开始阅读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条单字长双地址指令,要求有立即、直接、间接、寄存器、基址、相对寻址方式。试设计其指令格式。