1、计算机学科专业基础综合组成原理-3 及答案解析(总分:100.00,做题时间:90 分钟)一、综合应用题(总题数:18,分数:100.00)写出下列各种情况下用 16 位二进制数所能表示的数的范围(用十进制表示)以及对应的二进制代码。(分数:25.00)(1).无符号的整数(分数:5.00)_(2).补码表示的有符号整数(分数:5.00)_(3).补码表示的有符号小数(分数:5.00)_(4).移码表示的有符号整数(分数:5.00)_(5).原码表示的有符号小数(分数:5.00)_1.利用原码定点一位乘法计算 XY,其中:X=0.1011,Y=-0.0110。 (分数:5.00)_2.利用补码
2、定点一位乘法计算 XY,其中:X=1.0111,Y=0.1011。 (分数:5.00)_3.计算浮点数加法 X+Y,其中,X=0.11012 01 ,Y=(-0.1010)2 11 。 (分数:5.00)_4.已知 X-0.1010,Y=0.1101,用补码加、减交替法计算 X/Y。 (分数:5.00)_5.判断如下一个二元码的编码系统是有权还是无权码,写出判断的推导过程。 十进制数 二元码的编码 0 0000 1 0111 2 0110 3 0101 4 0100 5 1011 6 1010 7 1001 8 1000 9 1111 (分数:5.00)_6.说明 CRC 编码的纠错原理和方法
3、,假定被校验的数据 M(X)=100101 2 ,生成多项式为 G(X)=X 3 +X+1,试计算 CRC 校验码。 (分数:5.00)_7.证明补码减法运算的公式: X-Y 补 =X 补 -Y 补 =X 补 +-Y 补 (分数:5.00)_8.证明定点小数表示中 X 补 +Y 补 =2+(X+Y)=X+Y 补 (分数:5.00)_9.已知传送的数据 M=1100,查表得生成多项式 G(X)=X 3 +X+1,求 CRC 码字。 (分数:5.00)_10.用浮点数计算 0.5+(-0.4375)(设尾数为 4 位)。 (分数:5.00)_11.设 x=-15,y=-13,数据用补码输入,用带求
4、补器的原码阵列乘法器求乘积 xy,并用十进制数乘法进行验证。 (分数:5.00)_12.证明x+y 移 =x 移 +y 补 (mod2 2n+1 )。 (分数:5.00)_13.已知 x=0.10011101,y=0.1110,用不恢复余数阵列除法器求 x/y。 (分数:5.00)_14.若将 4 个全加器级连可得 4 位加法器,并采用超前进位产生电路来同时形成各位进位,称这种加法器为超前加法器。根据各位进位的形成条件,可写出 C i 的逻辑表达式: C i =X i Y i +C i-1 请依据进位产生函数和进位传递函数推导出各位(4 位)的进位表达式。 (分数:5.00)_15.简述存储系
5、统的层次结构,说明每个层次所起的作用。 (分数:2.00)_16.某台字长和地址都为 16 位的计算机,程序计数器为 PC,内存以字编址。地址为 2003H 的内存中,有一条无条件相对转移指令,其机器码为 41FCH,其中的操作码为 8 位,请计算相对转移的具体地址。 (分数:1.00)_某台字长和地址都为 16 位的计算机,有 16 个通用寄存器(通常以 0000B 表示 R0 的编号),程序计数器为PC,内仔以字编址。在地址为 2000H 的内存中,有 1 条将 16 位立即数 0036H 送寄存器 R0f10 指令,其机器码为 8801 036H。(分数:2.00)(1).指令操作码在最
6、高 8 位,请指出该指令为几地址指令,并写出具体的地址编码。(分数:1.00)_(2).如果在原来内存地址中,该指令功能改为将 R1 的数据传到 R2,操作码为 03H,令的机器码。(分数:1.00)_计算机学科专业基础综合组成原理-3 答案解析(总分:100.00,做题时间:90 分钟)一、综合应用题(总题数:18,分数:100.00)写出下列各种情况下用 16 位二进制数所能表示的数的范围(用十进制表示)以及对应的二进制代码。(分数:25.00)(1).无符号的整数(分数:5.00)_正确答案:()解析:无符号的整数范围(用十进制表示):065535 对应的二进制代码 0000 0000
7、0000 0000-1111 1111 1111 1111(2).补码表示的有符号整数(分数:5.00)_正确答案:()解析:补码表示的有符号整数范围(用十进制表示):-3276832767 对应的二进制代码 1000 0000 0000 00000111 1111 1111 1111(3).补码表示的有符号小数(分数:5.00)_正确答案:()解析:补码表示的有符号小数范围(用十进制表示):-1(1-2 -15 ) 对应的二进制代码 1 000 0000 0000 00000.111 1111 1111 1111(4).移码表示的有符号整数(分数:5.00)_正确答案:()解析:移码表示的有
8、符号整数范围(用十进制表示):-3276832767 对应的二进制代码 0000 0000 0000 00001111 1111 1111 1111(5).原码表示的有符号小数(分数:5.00)_正确答案:()解析:原码表示的有符号小数范围(用十进制表示):-(1-2 -15 )+(1-2 15 ) 对应的二进制代码 1.111 1111 1111 11110.111 1111 1111 1111 解析 本题考查的是定点数的表示。1.利用原码定点一位乘法计算 XY,其中:X=0.1011,Y=-0.0110。 (分数:5.00)_正确答案:()解析:计算过程如下表所示。 部分积 乘数 移位 0
9、000 +0000 0110 (右移)0000 + 1011 1001 10 1011 (右移)0101 1001 10 + 1011 10000 (右移) 1000 0100 010 结果:1000010; 右移八位后:0.01000010; 符号为负即:-0.01000010 解析 本题考查的是定点乘法运算。根据我们在精讲时讲到的定点乘法运算规则:从最低位 Y 0 开始,当乘数 Y i 为 1 时,将上次部分积加上被乘数的绝对值,然后右移一位,得到新的部分积;当 Y i 为 0时,则写下全 0。然后再对乘数 Y 的高一位进行类似乘法运算。重复“加一右移”操作次,可得到最后的乘积。根据这一规
10、则来计算。2.利用补码定点一位乘法计算 XY,其中:X=1.0111,Y=0.1011。 (分数:5.00)_正确答案:()解析:+X 补 =11.0111;-X 补 =00.1001,计算过程如下表所示。 部分积 移位 乘数 附加位 部分积的加数 00.0000 + 00.1001 01011 0 00.1001 -X 补 右移 00.0100 + 00.0000 1 0101 1 00.0000 右移 01 + 11.0111 01 010 1 11.0111 11.1001 右移 101 + 00.1001 101 01 0 00.1001 100.0101 右移 00.0010 + 1
11、1.0111 1101 0 1 11.0111 +X 补 11.1001 结果: 11.10011101 解析 本题考查的是定点乘法运算。根据我们在精讲时讲到的定点补码乘法运算规则:XY 补 =X 补 (-Y 0 +Y 1 Y 2 Y n )。根据这一规则来计算。3.计算浮点数加法 X+Y,其中,X=0.11012 01 ,Y=(-0.1010)2 11 。 (分数:5.00)_正确答案:()解析:(1)对阶 X 补“ =00,11;00.0011 (2)尾数求和 4.已知 X-0.1010,Y=0.1101,用补码加、减交替法计算 X/Y。 (分数:5.00)_正确答案:()解析:X 补 =
12、11.0110,Y 补 =00.1101,-Y 补 =11.0011(双符号位),这里计算步骤略。 最后经过计算得:X+Y 补 =Q 补 =1.0010(单符号位),余数R 补 =1.10012 -4 (单浮号位)。 X/Y=-0.1110,余数=-0.01102 -4 。5.判断如下一个二元码的编码系统是有权还是无权码,写出判断的推导过程。 十进制数 二元码的编码 0 0000 1 0111 2 0110 3 0101 4 0100 5 1011 6 1010 7 1001 8 1000 9 1111 (分数:5.00)_正确答案:()解析:设 4 位二元码每位分别为 A、B、C、D,且假定
13、其为有权码,则: (1)从数值 4 的编码 0100 可求得 B 的位权为 4; (2)从数值 8 的编码 1000 可求得 A 的位权为 8; (3)从数值 7 的编码 1001 可求得 D 的位权为-1; (4)从数值 6 的编码 1010 可求得 C 的位权为-2; (5)用 A、B、C、D 的位权分别为 8、4、-2、-1 来验证数值 0、1、2、3、5、9 的编码值,结果都正确,故该编码系统是有权码。6.说明 CRC 编码的纠错原理和方法,假定被校验的数据 M(X)=100101 2 ,生成多项式为 G(X)=X 3 +X+1,试计算 CRC 校验码。 (分数:5.00)_正确答案:
14、()解析:在 CRC 码中,选择适当的生成多项式 G(X),在计算机二进制信息 M(X)的长度确定时,余数与 CRC码出错位的对应关系是不变的,由此可以用余数作为判断出错位置的依据而纠正错码。CRC 码的检错方法如下: 在接收数据时,将接收的 CRC 码与 G(X)相除,若余数为 0,则表示数据正确;若余数不为 0,说明数据有错。如果 G(X)选择得好,余数还可以判断出错的位置,从而可以纠正错误。 因为生成多项式是 4 位=(K+1)位,所以校验位 K=3 位,应将 M(X)左移 3 位后除以生成多项式 G(X)。结果校验位应为:110。7.证明补码减法运算的公式: X-Y 补 =X 补 -Y
15、 补 =X 补 +-Y 补 (分数:5.00)_正确答案:()解析:提示:只要证明-Y 补 =-Y 补 ,上式即得证。 因为X+Y 补 =X 补 +Y 补 (mod 2) 令 Y=-X 0 补 =X 补 +-X 补 所以-X 补 =-X 补 (mod 2) 即X-Y 补 =X 补 -Y 补 =X 补 +-Y 补8.证明定点小数表示中 X 补 +Y 补 =2+(X+Y)=X+Y 补 (分数:5.00)_正确答案:()解析:提示:采用定点小数表示,条件是:|X|1,|Y|(1)X0,Y0,则 X+Y0。 因为 X、Y 都是正数,而正数的补码和原码是一样的,所以得: X 补 +Y 补 =X+Y=X+
16、Y 补 (mod 2) (2)X0,Y0,则 X+Y0 或 X+Y0。 一正数和一负数相加,结果有正、负两种可能。根据补码定义得: X 补 =X,Y 补 =2+Y 即X 补 +Y 补 =X+2+Y=2+(X+Y) 当 X+Y0,2+(X+Y)2,进位 2 必丢失,又因(X+Y)0,故: X 补 +Y 补 =X+Y=X+Y 补 (mod 2) 当 X+Y0,2+(X+Y)2,又因(X+Y)0,故: X 补 +Y 补 =2+(X+Y)=X+Y 补 (mod 2) (3)X0,Y0,则 X+Y0 或 X+Y0。 同(2),把 X 和 Y 的位置对调即可。 (4)X0,Y0,则 X+Y0。 两负数相加
17、,则其和也一定是负数。 因为X 补 =2+X,Y 补 =2+Y 即X 补 +Y 补 =2+X+2+Y=2+(2+X+Y) 又|X+Y|1,1(2+X+Y)2,2+(2+X+Y)进位 2 必丢失,而 X+Y0 故X 补 +Y 补 =2+(X+ Y )=X+Y 补 (mod 2) 结论:在模 2 意义下,任意两数的补码之和等于两数之和的补码。其结论也适用于定点整数。9.已知传送的数据 M=1100,查表得生成多项式 G(X)=X 3 +X+1,求 CRC 码字。 (分数:5.00)_正确答案:()解析:已知 4 位数据 1100,G=1011,即 4 为数据,G 为 4 位,所以余数 R 为 3
18、位; 将 M 左移 3 位得到 1100 000,去除以 G, 模 2 除求得 R=010 所以传送码字为 V=110001010.用浮点数计算 0.5+(-0.4375)(设尾数为 4 位)。 (分数:5.00)_正确答案:()解析:转成浮点数 0.5 10 =0.10002 0 -0.437510=-0.11102 -1 对阶:较小的右移。 -0.11102 -1 =-0.01112 0 尾相加: 0.00012 0 规格化结果: 0.00012 0 =0.10002 -3 舍入:数据已适合 4 位存储,不必进行此操作。 查溢出:无溢出。 最后结果:0.10002 -3 =0.0001=(
19、1/16) 10 =0.0625 1011.设 x=-15,y=-13,数据用补码输入,用带求补器的原码阵列乘法器求乘积 xy,并用十进制数乘法进行验证。 (分数:5.00)_正确答案:()解析:设最高位为符号位,输入数据为 x 补 =10001 y 补 =10011 因符号位单独考虑,尾数算前求补器输出值为 |x|=1111,|y|=1101 乘积符号位运算: 尾数部分运算: 12.证明x+y 移 =x 移 +y 补 (mod2 2n+1 )。 (分数:5.00)_正确答案:()解析:x 移 =2 n +x,2 n x-2 n x 移 +y 移 =2 n +x+2 n +y =2 n +(2
20、 n +(x+y) =2 n +x+y 移 又y 补 =2 n+1 +y 所以x 移 +y 补 =2 n +x+2 n+1 +y =2 n+1 +(2 n +(x+y) 即x+y 移 =x 移 +y 补 (mod 2 n+1 )13.已知 x=0.10011101,y=0.1110,用不恢复余数阵列除法器求 x/y。 (分数:5.00)_正确答案:()解析:-y 补 =1.0010 14.若将 4 个全加器级连可得 4 位加法器,并采用超前进位产生电路来同时形成各位进位,称这种加法器为超前加法器。根据各位进位的形成条件,可写出 C i 的逻辑表达式: C i =X i Y i +C i-1 请
21、依据进位产生函数和进位传递函数推导出各位(4 位)的进位表达式。 (分数:5.00)_正确答案:()解析:提示:进位产生函数与进位传递函数的表达式分别为: G i =X i Y i P i =X i Y i G i 的意义是:当 X i Y i 均为 1 时定会产生向高位的进位。P i 的意义是:当 X i 和 Y i 中有一个为 1时同时低位有进位输入,则本位也将向高位传送进位。即 C i 的表达式可以写为: C i =X i Y i +()C i-1 =G i +P i C i-1 依据上式,可以写出各进位的表达式分别为 C 1 =G 1 +P 1 C 0 ; (最低位) C 2 =G 2
22、 +P 2 C 1 =G 2 +P 2 (G 1 +P 1 C 0 )=G 2 +P 2 G 1 +P 2 P 1 C 0 C 3 =G 3 +P 3 G 2 +P 3 P 2 G 1 +P 3 P 2 P 1 C 0 C 4 =G 4 +P 4 G 3 +P 4 P 3 G 2 +P 4 P 3 P 2 G 1 +P 4 P 3 P 2 P 1 C 0 从上式可以看出,只要将各位的 G 和 P 同时送入各高位加法器,它们的进位是同时产生的。15.简述存储系统的层次结构,说明每个层次所起的作用。 (分数:2.00)_正确答案:()解析:存储系统由 Cache 存储器、主存和辅存构成。Cache
23、-主存层次是为了解决主存和 CPU 之间的速度匹配问题。而主存-辅存层次是解决主存容量不足的问题。16.某台字长和地址都为 16 位的计算机,程序计数器为 PC,内存以字编址。地址为 2003H 的内存中,有一条无条件相对转移指令,其机器码为 41FCH,其中的操作码为 8 位,请计算相对转移的具体地址。 (分数:1.00)_正确答案:()解析:(1)根据题意,机器码 41FCH 为一个字长,取指后,程序计数器 PC 为“2004H”; (2)操作码 41H 为 8 位,偏移量 FCH 也为 8 位,符号位扩展后的 16 位偏移量是 FFFCH; (3)转移的具体地址计算为:PC=PC+16
24、位偏移量=2004H+FFFCH=2000H,进到更高位的 1 自动丢失。 所以相对转移的具体地址为 2000H。某台字长和地址都为 16 位的计算机,有 16 个通用寄存器(通常以 0000B 表示 R0 的编号),程序计数器为PC,内仔以字编址。在地址为 2000H 的内存中,有 1 条将 16 位立即数 0036H 送寄存器 R0f10 指令,其机器码为 8801 036H。(分数:2.00)(1).指令操作码在最高 8 位,请指出该指令为几地址指令,并写出具体的地址编码。(分数:1.00)_正确答案:()解析:根据题意,该指令为二地址指令,除去操作码 88H 和立即数 0036H,剩下为 01H,即 0000 0001B,所以表示目的地址 R0 的地址编码为高 4 位 0000B,表示立即数 0036H 的地址编码为 2001H(即由 PC+1 自动形成)。(2).如果在原来内存地址中,该指令功能改为将 R1 的数据传到 R2,操作码为 03H,令的机器码。(分数:1.00)_正确答案:()解析:因为 R1 的编号为 0001B,通用 R2 的编号为 0010B,又依据前面的指令可以得到,8 位地址码中,高 4 位为目的寄存器编号,所以剩下的低 4 位可以用于表示源寄存器编号,所以该指令的机器码为0321H。