王万生《计算机组成原理》清华大学出版社完整答案 下载本文

23.运算器的主要功能是完成算术运算和逻辑运算。

24.ALU的核心部件是加法器。

三、计算题

1.采用补码进行加减运算(用六位二进制表示,左边二位为符号位),并使用双符号位溢出判断公式来判断结果是否溢出?若溢出,是哪一种溢出?

①:14+(-8)= ? ②: (-11)- 7 = ? 解:①:14+(-8)= ? 001110 (+14)补码 + 111000 (-8)补码 1000110 (+6)

结果的符号是00正(最高位的1自然丢失)。

所以14+(-8)= 6,没有溢出

②: (-11)- 7 = ?

21

110101 (-11)补码 000111 (7)

补码

+ 111001 (-7)补码 1101110

结果的符号是10(最高位的1自然丢失),所以溢出,且负溢出。

2.利用补码进行加减运算(用5 位二进制表示,左边第一位为符号位),并使用单符号位溢出判断公式来判断结果是否溢出?若溢出,是哪一种溢出?

①:13+7 = ? ②: 12- 8 = ? 解:①:13+(7)= ? 01101 (+13)补码 + 00111 (7)补码 10100 (-12)

OVER=1·1·1+0·0·0=1结果溢出,且正溢出。

22

②: 12- 8 = ?

01100 (12)补码 01000 (8)补码 + 11000 (-8)补码 100100 (+4) (最高位的所以12- 8 =4

3.用原码的不恢复余数法求X÷Y=?,X= - 0.1011,Y= + 0.1110。写出具体运算过程,分别给出求出的商和余数。

解:|X|=0.1011,|Y|=0.1110, [|X|]

1自然丢失),

OVER=1·0·0+0·1·1=0无溢出

=0.1011,[|Y|]补=0.1110 [-|Y|]补=1.0010。-Y可以用+[-|Y|]补来实现。采用双符号位(防止左移时部分余数会改变符号位产生溢出)

23

部分积余数R 0 0 1 0 1 1 +

1 1 0 0 1 0 1 1 1 1 0 1 1 1 1 0 1 0 + 0 0 1 1 1 0

0 0 1 0 0 0 0 1 0 0 0 0 + 1 1 0 0 1 0

0 0 0 0 1 0 0 0 0 1 0 0 + 1 1 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 + 0 0 1 1 1 0

1 1 1 0 1 0 + 0 0 1 1 1 0

0 0 1 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 商Q 0 0 0 0 0

操作说明 开始 R0=X R1=X-Y R1<0,则上商q0=0

部分余数和商一起左移2R1 2R1+Y

R2>0,则上商q1=1 部分余数和商一起左移2R2 2R2-Y

R3>0,则上商q2=1 部分余数同商一起左移2R3 2R3-Y

R4<0,则上商q3=0 部分余数同商一起左移2R4 2R4+Y

R5<0,则上商q4=0恢复余数R5+Y

符号位=1+○0=1,所以X÷Y=-0.1100(商) 余数0.1000×2

4.已知被乘数X= - 1011,乘数Y= - 1101,利用原码一位乘法求:X×Y=? (要求写出具体乘法步骤)

解: 部分积 乘数(最右边位为判断位)

00000 1101 + 1011 01011

右移一位 00101 1110

24

-4

+ 0000 00101

右移一位 00010 1111 + 1011 01101

右移一位 00110 1111 + 1011 10001

右移一位 1000 1111 符号位1+○1=0(正) X×Y=10001111

习题4参考答案 一、选择题

1.某计算机字长32位,存储容量8MB,若按双字编址,它的寻址范围是 A 。 A.0~1M B. 0~2M

25