补码一位乘法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机组成原理
第三章运算方法与运算器3.4 补码一位乘法
1补码一位乘法的基本方法
设[X]补= X0X1X2X3…X n[Y]补= Y0Y1Y2Y3…Y n
可证明:
[X⋅Y]补= [X]补•( 0.Y1Y2Y3…Yn) –Y0• [X]补
进一步展开合并后可得:
n
[x•y]补=[x] 补•∑(y i+1-y i)2-i (符号位参加运算)
i=0
1补码一位乘法的基本方法
[x•y] 补=[x] 补• (y i+1-y i)2-i (符号位参加运算)
补码一位乘法的运算规则如下:
(1)如果y n+1=y n,部分积加0,部分积算术右移1位;
(2)如果y n+1y n=10,部分积加[x]补,部分积算术右移1位;
(3)如果y n+1y n=01,部分积加[-x]补,部分积算术右移1位.
重复进行n+1步,但最后一步不移位。
包括一位符号位,所得乘积为2n+1位,其中n为数据位位数.
1补码一位乘法的基本方法
几个特殊问题的处理
[x •y] 补=[x] 补• (y i+1-
y i )2-i (符号位参加运算) 设[X]补= X 0X 1X 2X 3…X n [Y]补= Y 0Y 1Y 2Y 3…Y n
(1)i=n 时,y n+1=?(2)y n+1是哪个寄存器?
(3)算术右移的对象有哪些?y n+1=0
在乘数寄存器Y 后增加的一位部分积和乘数寄存器均右移
2补码一位乘法的举例
例1 已知X= +1101 Y=+1011 用补码一位乘法求X⨯Y
解:[X]补=01101 [Y]补=01011 [–X]补=10011
部分积乘数说明
000000 010110Y n+1< Y n部分积+[–X]补
+ 110011
110011
→111001101011结果右移一位,Y n+1= Y n部分积+0
+ 000000
111001
→111100 110101结果右移一位, Y n+1> Y n部分积+[X]补
+ 001101
001001
2补码一位乘法的举例
部分积乘数说明
→000100 111010将结果右移一位, Y n+1< Y n部分积+[–X]补
+ 110011
110111
→111011 111101将结果右移一位, Y n+1> Y n部分积+[X]补
+ 001101
001000
∴[X⋅Y]补=010001111
∴X⋅Y= 010001111。