《计算机组成原理》习题答案 (秦磊华)
(2)[y]补=0.11011,[-y]补=1.00101 源码不恢复余数法:
被除数/余数 商寄存器 上商位 说明 00.10101 +[-y]补 11.00101 (x-y)比较 11.11010 0 r0<0,商上0
← 11.10100 0 左移一位
+ 00.11011 余数为负,加y比较 00.01111 1 r1>0,商上1 ← 00.11110 0.1 左移一位
+[-y]补 11.00101 余数为正,减y比较
1 00.00011 1 r2>0,商上1 ← 00.00110 0.11 左移一位
+[-y]补 11.00101 余数为正,减y比较
0 11.01011 0 r3<0,商上0 ← 11.10110 0.110 左移一位
+ 00.11011 余数为负,加y比较 1 00.00001 0.1101 1 r4>0,商上1,左移一位
即
← 00.00010 +[-y]补 11.00101 11.00111 0.11010
余数为正,减y比较 r5<0,商上0,只移商
-101
[x]原÷[y]原=[Q]原=-0.11010,余数[r]原=1.00111。
第 21 页 共 70 页
《计算机组成原理》习题答案 (秦磊华)
补码不恢复余数法:
[y]补=1.01011,[y]补=0.11011,[-y]补=1.00101
被除数/余数 商 上商位 说明 11.01011 +[y]补 00.11011 被除数与除数异号,加除数比较 00.00110 1 余数r0与除数同号,商上1
← 00.01100 1 左移一位,商从上商位移入商寄存器 +[-y]补 11.00101 减除数比较
11.10001 0 余数r1与除数异号,商上0 ← 11.00010 1.0 左移一位 +[y]补 00.11011 加除数
11.11101 0 余数r2与除数异号,商上0 ← 11.11010 1.00 左移一位 +[y]补 00.11011 加除数比较
00.10101 1 余r3与除数异号,商上1 ← 00.01010 1.001 左移一位 +[-y]补 11.00101 减除数比较
11.01111 0 余r4与除数同号,商上0
← 11.10110 1.0010 +[y]补 00.11011 1 00.10001 1.00101
故[x÷y]衬= 1.00101,余数[r]补=0.0000010001
因未除尽,商为负,因此商需要校正。[x÷y]衬=1.00101+0.00001=1.00110 商为负,余数与被除数同号,余数不需要处理。
3.9设数的阶码为3位,尾数为6位(不包括符号位)按机器补码浮点运算步骤,完成[x+y]补
左移一位 加除数比较
余r3与除数同号,商上1
(1) x=2×0.100100,y=2×(-0.011010) (2) x=2
-101
011010
×(-0.100010),y=2
-100
×(-0.010110)
解:1、(a)对阶 [x]补=00011 00100100 [y]补=00010 11100110
阶差 △E=Ex-Ey=00001,阶差为1
将[y]补尾数右移一位得到00011 11110011
(b)相加 [x]补+[y]补=00011 00010111,尾数相加为00010111
第 22 页 共 70 页
《计算机组成原理》习题答案 (秦磊华)
(c)结果规格化 由于尾数符号位跟最高有效位相同,需要左规:
规格化结果为:[x]补+[y]补=00010 00101110 则:[x]补+[y]补=00010 00101110 (d)不需舍入,无溢出
2、(a)对阶 [x]补=11011 11011101 [y]补=11100 11101010
阶差 △E=Ey-Ex=00001,阶差为1
将[x]补尾数右移一位得到11100 11101111
(b)相加 [x]补+[y]补=11100 11011001,尾数相加为11011001 (c)结果规格化 由于尾数符号位跟最高有效位不相同,不需要左规:
(d)不需舍入,无溢出
3.10采用IEEE754单精度浮点数格式计算 (1)0.625+(-12.25)
(2) 0.625 – (- 12.25)
解:(1)0.625=(0.101)2=(0 01111110 01000000000000000000000)2
-12.25=(1 10000010 10001000000000000000000)2 对阶 01111110-10000010=-00000100 尾数计算
将0.625的尾数右移4位,计算得到: 0.000101+(-1.100010)=-1.011101
=(C13A0000)16
则0.625+(-12.25)=(1 10000010 01110100000000000000000)2
(2)0.625=(0.101)2=(0 01111110 01000000000000000000000)2 -12.25=(1 10000010 10001000000000000000000)2 对阶 01111110-10000010=-00000100 尾数计算
将0.625的尾数右移4位,计算得到: 0.000101-(-1.100010)=1.100111
=(414E0000)16
则0.625+(-12.25)=(0 10000010 10011100000000000000000)2
3.11 用“与或非”门设计一个4位并行进位的加法器。 解:C1=Y1+X1C0= Y1?X1C0 C2=Y2+X2C1 = Y2 + X2Y1 + X2X1C0 = Y2 ? X2Y1 ? X2X1C0 C3=Y3+X3C2 = Y3+ X3Y2 + X3X2Y1+ X3X2X1C0= Y3? X3Y2 ? X3X2Y1? X3X2X1C0 C4=Y4+X4C3 = Y4+ X4Y3+ X4X3Y2 + X4X3X2Y1+ X4X3X2X1C0 =Y4? X4Y3? X4X3Y2 ? X4X3X2Y1? X4X3X2X1C0 电路图略
第 23 页 共 70 页
《计算机组成原理》习题答案 (秦磊华)
3.12 利用上题结果,设计一个4位运算器。运算器中包括加法器、两个寄存器、输入选择和输出控制电路。要求输入选择电路能接收选择总线或寄存器中的数据,能对两个寄存器中的数以原码和补码两种形式送入加法器,并能对加法器的输出进行直接传送、左移一位和右移一位传送,然 后以将结果送寄存器或总线。
本题略
2.15 已知X和Y,试用变形补码计算[X]补+[Y]补,并说明运算结果是否溢出。 (1) X=-0.11011,Y=-0.10111 (2) X=-0.10110,Y= 0.11101
2.16 已知X、Y,试用变形补码计算[X]补-[Y]补,并说明运算结果溢出与否。 (1) X= 0.11010,Y=-0.11011 (2) X=-0.10101,Y=-0.11010
2.17 用补码一位乘法计算[X]补 ? [Y]补。
(1) X =-0.10111,Y = 0.10101
(2) X=-0.11010,Y =-0.1011
2.18 用补码不恢复余数法计算[X]补?[Y]补。
(1) X = 0.10101,Y = 0.11011
(2) X =-0.10101,Y = 0.10111
2.19 设阶码为4位,尾数为8位(各含一位符号位),试按浮点补码运算步骤计算[X]补+[Y]补及[X]补-[Y]补。
(1) X=2–10 ? (-0.1010110),Y=2–100 ?(-0.1101100)
(2) X=211 ? 0.1010110,Y=2100 ? 0.1100110 2.20 定点数与浮点数的溢出判断方法有什么不同? 2.21 浮点运算中对运算结果左规和右规的具体法则有什么? 2.22 为什么采用先行进位能提高加法器的运算速度?
2.23 试述表达式C14 =G14 + P14G15 + P14G15C16中各项的实际含义。 2.24 运算器由哪几个主要功能部件组成?各功能部件的作用是什么?
2.25 利用SN74181和SN74182芯片设计一个3级先行进位的64位ALU(框图形式)。
第 24 页 共 70 页