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