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

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比较 r5<0,商上0,只移商

+[-y]补 11.00101

11.00111

0.11010

[x]原÷[y]原=[Q]原=0.11010,余数[r]原=1.00111-101。

补码不恢复余数法:

[y]补=0.11011,[-y]补=1.00101

被除数/余数 商 上商位 00.10101 +[-y]补 11.00101 11.11010 0 ← 11.10100 0 +[y]衬 00.11011 00.01111 1 ← 00.11110 0.1 +[-y]补 11.00101 00.00011 1 ← 00.00110 0.11 +[-y]补 11.00101 11.01011 0 ← 11.10110 0.110 +[y]衬 00.11011 00.10001 1

说明 被除数与除数同号,减除数比较 余数r0与除数异号,商上0

左移一位,商从上商位移入商寄存器 加除数比较

余数r1与除数同号,商上1 左移一位 减除数

余数r2与除数同号,商上1 左移一位 减除数比较

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

余r4与除数同号,商上1

← 11.10110 0.1101 +[-y]补 11.00101 11.11011 0.11010

左移一位 减除数比较

余r3与除数异号,商上0

故[x÷y]衬= 0.11010,余数[r]补=1.0000011011 因未除尽,商为正,因此商不需要校正。

商为正,余数与被除数异号,则应将余数加上除数进行修正才能获得正确的余数,为: (1.11011+0.11011)*0.00001=0.0000010110

(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比较 r5<0,商上0,只移商

+[-y]补 11.00101

11.00111

0.11010

[x]原÷[y]原=[Q]原=-0.11010,余数[r]原=1.00111-101。