《计算机组成原理》课后题答案 清华大学出版 秦磊华 吴非·· 下载本文

(2) [x]补=1.100110, [-x]补=0.011010, [y]补=1.100011

部分积 乘数 ynyn+1 说明 ??

00.000000 1.1000110 yn+1=0 +00.011010 yn+1yn=01,加[-x]补 00.011010 →00.001101 0 1.100011 右移一位,得P1 +00.000000 yn+1yn=11,加0 00.001101 →00.000110 10 1.10001 右移一位,得P2 +11.100110 yn+1yn=10,加[x]补 11.101100 →11.110110 010 1.1000 右移一位,得P3 +00.000000 yn+1yn=00,加0 11.110110 →11.111011 0010 1.100 右移一位,得P4 +00.000000 yn+1yn=00,加0 11.111011 →11.111101 10010 1.10 右移一位,得P5 +00.011010 yn+1yn=01,加[-x]补 00.010111 →00.001011 110010 1.1 右移一位,得P6 +00.000000 yn+1yn=00,加0 00.001011 110010 最后一步数据不移位 所以 [x·y]补=0.001011110010

3.8用原码不恢复余数法和补码不恢复余数法计算x÷y =? (1) x=0.10101,y=0.11011 (2) x=-0.10101,y=0.11011

解:(1)[y]补=0.11011,[-y]补=1.00101

源码不恢复余数法:

被除数/余数 商寄存器 上商位 说明 00.10101 +[-y]补 11.00101 (x-y)比较 11.11010 0 r0<0,商上0 ← 11.10100 0 左移一位 +1 余数为负,加y比较 00.11011 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。

补码不恢复余数法:

[y]补=0.11011,[-y]补=1.00101 被除数/余数 商 上商位 说明 00.10101 +[-y]补 11.00101 被除数与除数同号,减除数比较 11.11010 0 余数r0与除数异号,商上0 ← 11.10100 0 左移一位,商从上商位移入商寄存器 +[y]衬 00.11011 加除数比较 00.01111 1 余数r1与除数同号,商上1 ← 00.11110 0.1 左移一位 +[-y]补 11.00101 减除数 00.00011 1 余数r2与除数同号,商上1 ← 00.00110 0.11 左移一位 +[-y]补 11.00101 减除数比较 11.01011 0 余r3与除数异号,商上0 ← 11.10110 0.110 左移一位 +[y]衬 00.11011 加除数比较 00.10001 1 余r4与除数同号,商上1 ← 11.10110 0.1101 +[-y]补 11.00101 11.11011 0.11010 故[x÷y]衬= 0.11010,余数[r]补=1.0000011011 因未除尽,商为正,因此商不需要校正。 商为正,余数与被除数异号,则应将余数加上除数进行修正才能获得正确的余数,为: (1.11011+0.11011)*0.00001=0.0000010110

左移一位 减除数比较 余r3与除数异号,商上0

(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。