计算机组成原理第四章要求作业参考答案.docx
《计算机组成原理第四章要求作业参考答案.docx》由会员分享,可在线阅读,更多相关《计算机组成原理第四章要求作业参考答案.docx(17页珍藏版)》请在冰豆网上搜索。
![计算机组成原理第四章要求作业参考答案.docx](https://file1.bdocx.com/fileroot1/2023-1/5/85ace3ad-8b5b-433f-8c7c-8701e8837796/85ace3ad-8b5b-433f-8c7c-8701e88377961.gif)
计算机组成原理第四章要求作业参考答案
习题4
4.1设X二0.1101,Y=-0.0110,求:
(1)[Xh卜
(2)[—X]补(3)[2Xh卜(4)[-2X]补
(5)[X/2]补(6)[-X/2]?
卜(7)[Y]补(8)[一丫]补
(9)[2Y]补(10)[-2Y]?
卜(11)[Y/2]补(12)[-Y/2]?
卜
(13)[-Y/4]补
1.
(1)[X]沪0.1101
(2)[-X]补二1.0011
(3)[2X]补=0.1010溢出
(4)[-2X]沪1.0110溢出
(5)[X/2h尸0.0110
注意:
参见P109中的补码算术移位规则,以及P110的例4.4
(6)[-X/2]补二1.1001
(7)[Y]补二1.1010
(8)[-丫]讦0.0110
(9)[2Y]«.=1.0100
(10)[-2Y]补二0.1100
(11)[Y/2]»b=l.1101
(12)[-丫/2]戸0.0010
(13)[-Y/4]?
卜二0.0001
4.2已知X和Y,用变形补码计算X+Y和X-Y,并指出运算结果是否溢出:
(1)X二0.11011,Y二0.11111
(2)X二-0.1101,Y二0.0110
答:
.
(1)
[X]补=00」1011[丫]补=00.11111卜Y]补=11.00001
[X]补00.11011
Sfi与Sf2不同,溢出
+[Y]补00.11111
[X+Y]补01.11010
[X]补00.11011
+卜Y]补11.00001Sf]与Sf2相同,无溢出
[X-Y]补11.11100
所以:
[X+Yh:
发生溢出
[X-Y]«.=1.11100
注意:
参见P107中的双符号位判溢方法原理。
(2)[X+Y]补二1.1001
[X—Y]卜溢出
4.4使用原码一位乘法计算X*Y:
(1)X二0.11101,Y二0.01111
(2)X=-0.10011,Y二0.11010答:
(1)
以]原=0.11101[Y]原=0.01111
P=Xv㊉乙二030=0
0.11101
0.11101
0.01110
0.11101
1.01011
0.10101
0.11101
+
1.1()010
0.11001
0.11101
+
1.10110
0.11011
0.00000
部分积
0.00000
0.11011
0.01101
乘数IYI
01111
10111
11011
01101
00110
ioon|
・・・[P](=0.0110110011
AXxK=+0.0110110011
4.5使用补码Booth乘法讣算X*Y:
(1)X=0.01111,Y二-0.11101
(2)X二-0.10011,Y=-0.11010答:
(1)
[X]补=00.01111[Y]补=11.00011
操作说明
Ys=l,+|X|
右移一位
Y4=l,+x|
右移一位
Y3=l,+X|
右移一位
Y2=l,+|X|
右移i位
Yi=0,+0
右移一位
[—X]补=11.10001
部分积
00.00000
+11.10001
11.10001
11」1000
+00.00000
11」1000
11.11100
+00.01111
00.01011
00.00101
+00.00000
00.00101
00.00010
+00.00000
00.00010
00.00001
+11.10001
11.10010
乘数Y(YnYn+1)
1.000110
11.00011
011.0001
1011.000
11011.00
011011.0
01101
操作说明
Y5Y6=10,+[-X]补
右移一位
y4y5=il+o
右移一位
Y3Y4=01,+[X]补
右移一位
丫2丫尸00,+0
右移一位
Y1Y2=00,+0
右移一位
YOY1=1O,+[-X]补
所以:
[X*Y]补=1.1001001101
X*Y=-0.0110110011
4.6分别使用原码恢复余数除法和原码加减交替除法讣算X/Y:
(1)X二0.0111,Y=0.1101
(2)X二0.1011,Y二-0.1110
答:
(1)
原码恢复余数除法
注意:
参见P124中例4.9。
[X]原=0.0111[丫]原=0.11011X1=0.0111IYI=0.1101
卜IYI]补=11.00112=㊉匕=0Rs=O
被除数/余数
商Q
操作说明
+
OOeOlll
11.0011
0
0
0
0
0
+[TY|]补
11.1010
0
0
0
0
0
R0<0,上商0
+
00.1101
+|Y|恢复余数
00.0111
00.1110
0
0
0
ro
0
左移一位
+
11.0011
+[-1丫|]补
00.0001
0
0
0
0
1
Ri>0,上商1
00.0010
0
0
fo
1
0
左移一位
+
11.0011
+[-1丫|]补
11.0101
0
0
0
1
0
R2<0,上商0
+
00.1101
+|Y恢复余数
00.0010
00.0100
0
0
1
0
0
左移一位
+
11.0011
+[-1丫|]补
11.0111
0
0
1
0
0
R3<0,上商0
+
00.1101
+|Y|恢复余数
+
00.0100
00.1000
0
1
0
0
0
左移一位
1L0011
+[-1丫|]补
11.1011
0
1
0
0
0
R4<0,上商0
+Y|恢复余数
00.10000
所以[Q]ffi=0.1000[R]0=0.00001000
原码加减交替法:
注意:
参见P125中例4.10o
[X]原=0.0111[丫]原=0.11011X1=0.0111IYI=0.1101
[-IYI]^=11.0011Rs=0
被除数/余数
00.0111
操作说明
+1L0011
+
11.1010
11.0100
00.1101
+
00.0001
00.0010
1L0011
+
11.0101
10.1010
00.1101
+
11.0111
10.1110
00.1101
+
11-1011
00.1101
00.1000
00000
00000
00oro0
00001
0olo10
00010
00100
00100
01000
01000
+[-|丫|]补
R0<0,上商0
左移一位
+|¥|
Ri>0,上商1
左移一位
+[-1丫|]补
R2<0,上商0
左移一位
+|¥|
R3左移一位
+|Y|
R4<0,上商0
+|Y|恢复余数
所以[Q]w=0.1000
[R]w=0.00001000
(2)原码恢复余数除法:
[Qs]沪1.1100;
[R]沪0・00001000
原码加减交替除法:
[Qs]沪1.1100;
[R](5=0.00001000
4.7使用补码不恢复余数除法计算X/Y:
(1)X二0.0111,Y二0.1101
(2)X二0.1011,Y二-0.1110
答:
(1)
被除数/余数
商Q
操作说明
00.0111
0
0
0
0
0
[X]补与[Y]补同号
+11.0011
+[-丫]补
11.1010
0
0
0
0
0
[Ro]补与[Y]补异号,上商0
11.0100
0
0
0
0
0
左移一位
00.1101
+[丫]补
00.0001
0
0
0
0
1
[RJ补与[Y]补同号,上商1
00.0010
0
0
0
1
0
左移一位
+11.0011
+[-Y]补
11.0101
0
0
0
1
0
[R?
]补与[Y]补异号,上商0
10.1010
0
0
1
0
0
左移一位
+00.1101
+[丫]补
11.0111
0
C
1
0
0
[R3]补与[Y]补异号,上商0
10.1110
1
0
0
1
左移一位,末位置1
所以[Q]补=0.1001
[RJ
补=0.00001110
(2)[Qs]补二1.0011;[R]补=0.00001100
4.8设浮点数的格式为:
阶码5位,尾数6位,均用补码表示,请计算X+Y和X-Yo(阶码和尾数均用补码计算)。
(1)X=-1.625,Y二5.25
(2)X=15/64,Y=-29/256
答:
(1)
\13
X=(-1.625)10=(-1-)10=(--)10=(-0」1O1X201)2
OO
121
Y=(5.25)10=(5—)10=(―)10=(0.10101x2U)2
假设Z=X+Y,X+Y的计算过程如下:
注意:
参见P139的原理和P141中例4・13。
1、对阶
AE=Ex一£丫=[Ex]/tJ+[-EY]^=00,0001+11,1101=11,1110
AE<0,所以ExvEy,需要把Mx右2位,即乞+2
[X]f]=00,001111」1001(10)
2、尾数相加
[M\‘h11」1001
+[Myb,00.10101
[Ma,+My]布00.01110
[Mzh=00.01110(10)
3、结果规格化
左归一位,阶码减1;结果无溢出
此时的阶码和尾数为:
[Ez]fi=00,0011+11,1111=00,0010
=00.11101(0)
4、舍入
按照0舍1入法对尾数进行舍入,结果为:
冋=0,00100.11101
假设Z=x—Y,其计算过程如下:
1、对阶
AE=Ex-EY=[Ey]/|;.+[-£,1怖=00,0001+11,1101=11,1110
AE<0,所以Ex[X]fu=00,001111」1001(10)
2、尾数相减
布11.H001
+[-M、,h11.01011[M\‘一My】,,11.00100
[My]布=11.00100(10)
3、结果规格化
结果的尾数已经是规格化形式,并且无溢出,因此无需规格化
4、舍入
按照0舍1入发对尾数进行舍入,结果为:
=0,00111.00101
(2)[X+Y]补=1,11010.11111;X+Y二0.11111X25
[X-Y]补=1,11110.10110;X-Y二0.101102
4.9设浮点数的格式为:
阶码5位,用移码表示,尾数6位,用补码表示,请计算X*Y和X/Y(阶码用移码计算,尾数用任何一种机器数的串行乘除算法计算)。
(1)X二5.25,Y=-1.625
(2)X=-29/256,Y二13/64
答:
(1)[XXY]浮二1,01001.01111;
[X/Y]浮二1,00101.00111;
X*Y=-0.10001X20100
X/Y二一0・11OO1X20010
(2)X和Y的补码表示为:
[Y]补二0,11100.11110
[X]tt=0,11011.00011
Y=(―)10=(0」111x2")□4
假设Z=X*Y,则Z的计算过程为:
注意:
参见P143的原理和P143中例4・14。
(1)阶码相加
[EJ仔=[比+£丫・=[比几+[£丫1伯=00」101+11,1110=00,1011阶码无溢出
(1)尾数相乘
使用Booth算法计算尾数的乘积:
[M:
J补二11.00011[M、・]补二0・11110[—M]补二00.11101
部分积
乘数丫(丫認血)
操作说明
00.00000
0.111100
Y5Y6=00,+0
+00.00000
00.00000
00.00000
ol0.11110
右移一位
+00.11101
Y4Y5=1O,+[-m』补
00.11101
00.01110
1olo.1111
右移一位
+00.00000
丫3丫尸11,+0
00.01110
00.00111
01olo.1LA
右移一位
+00.00000
丫2丫3=11,+0
00.00111
00.00011
10100.11
右移一位
+00.00000
YiY2=lh+0
00.00011
00.00001
110100.1
右移一位
+11.00011
11.00100
11010
YoY^Ol,+[MJ补
[M、:
]补二1.0010011010
(2)结果的规格化
结果的尾数已经是规格化的,因此无需再规格化。
(3)舍入对尾数进行0舍1入,得:
[Z]补=0,10111.00101
假设Z=VY,则Z的计算过程为:
注意:
参见P145的原理和P146中例4.15。
(1)阶码相减
[EjfS=[EX-£y]f?
=[Ex+l-£Y]4i=00,1101+00,0010=00,1111
阶码无溢出
(2)尾数相除
采用原码加减交替法计算尾数的商:
[M』补二00.11101[My]#=00.11110[-My;]?
卜二11.00010
操作说明
+[-IMyl]补
Ro+|my|
Ri>0,上商1
左移一位
+卜IMyI]补
R2>o,.h商1左移一位
+[-IMyl]^
R3>o,上商1左移一位+【-IMyI]补&>0,上商1
左移一位
+[-IMyI]#
Rs<0,上商0+|MY|恢复余数
[M:
]补二0.11110
(1)
(3)结果的规格化
结果的尾数已经是规格化的,因此无需再进行规格化。
(4)舍入
对尾数进行0舍1入,得:
!
M:
=0.1111111111[M:
]补二1.00001
Z补二o,mii.00001
4.10假设浮点数加减运算时,尾数采用变形补码(模4补码)进行运算,运算
答:
A,B
4.13口设加器字长8位,若机器数DAH为补码,则算术左移一位后为,
算术右移一位后为。
A・B4HB・B5HC.F4HD.6DHE.EDH
答:
A,E
4.14在计算机内,减法一般用来实现。
A.二进制减法器B.十进制减法器C.二进制加法器
D.十进制加法器
答:
C
4.16如果将例4.12中的两条指令修改如下,试写出运算结果及其标志位,并分析各标志的意义。
MOVAL,7FH
ADDAL,80H
答:
(AL)=FFH:
ZF二0:
因为运算结果非零;
CF二0:
因为加法运算的最高位没产生进位,
0F二0:
因为C1㊉Cf二0,表明有符号数运算发生没溢出,
SF二1:
因为运算结果的最高位为1,
PF=1:
结果中T的个数为偶数个,所以PF二1。
4・17如果将例4.12中的两条指令修改如下,试写出运算结果及其标志位,并分析各标志的意义。
MOVAL,7FH
SUBAL,1
答:
(AL)=7EH;
ZF二0:
因为运算结果非零;
CF二0:
因为加法运算的最高位没产生借位,
0F二0:
因为C1㊉Cf二0,表明有符号数运算发生没溢出,
SF二0:
因为运算结果的最高位为0,
PF二0:
结果中的个数为奇数个,所以PF=Oo