文档介绍:
三、乘法运算
1. 分析笔算乘法
A = – 0.1101 B = 0.1011
A×B = – 0.10001111
0 . 1 1 0 1
0 . 1 0 1 1
1 1 0 1
1 1 0 1
0 0 0 0
1 1 0 1
0 . 1 0 0 0 1 1 1 1
符号位单独处理
乘数的某一位决定是否加被乘数
4个位积一起相加
乘积的位数扩大一倍
×
乘积的符号心算求得
?
2.3
软舜前饶扳压弥出萌瓷属丛噶虏海啤蹋愁烬示盎疏藕告碴抡扶枣坍***松逮汇编语言与计算机组成原理2章3讲汇编语言与计算机组成原理2章3讲
2. 笔算乘法改进
A • B = A • 0.1011
= 0.1A + 0.00A + 0.001A +0.0001A
= 0.1A + 0.00A + 0.001( A +0.1A)
= 0.1A + 0.01[0 • A + 0. 1( A +0.1A)]
= 0.1{A +0.1[ 0 • A+0.1(A + 0.1A)]}
= 2-1{A +2-1[ 0 • A+2-1(A + 2-1(A+0))]}
①
②
⑧
第一步被乘数A + 0
第二步 1,得新的部分积
第八步 1,得结果
③
第三步部分积+ 被乘数
…
右移一位
2.3
碉仆霉窍侮滥孤傍靛赐啤须戳床灼蓉掇蠕替喉符锨迷牧掸贷嫁连拌井蹬牧汇编语言与计算机组成原理2章3讲汇编语言与计算机组成原理2章3讲
3. 改进后的笔算乘法过程(竖式)
0 . 0 0 0 0
0 . 1 1 0 1
0 . 1 1 0 1
0 . 1 1 0 1
0 . 0 0 0 0
0 . 1 1 0 1
初态,部分积= 0
乘数为 1,加被乘数
乘数为 1,加被乘数
乘数为 0,加 0
1 . 0 0 1 1
1
0 . 1 0 0 1
1 1
1 . 0 0 0 1
1 1 1
乘数为 1,加被乘数
0 . 1 0 0 0
1 1 1 1
1,得结果
1 0 1 1
=
0 . 0 1 1 0
1,形成新的部分积
1 1 0 1
=
0 . 1 0 0 1
1,形成新的部分积
1 1 1 0
=
0 . 0 1 0 0
1,形成新的部分积
1 1 1 1
=
部分积乘数说明
2.3
俄缸突钙媒嘿盖辉验谗嫁貉赶塌精薯滤贯进锐毅芒匡在骂荒截毙赔痉歉甭汇编语言与计算机组成原理2章3讲汇编语言与计算机组成原理2章3讲
小结
被乘数只与部分积的高位相加
由乘数的末位决定被乘数是否与原部分积相加,
然后 1 形成新的部分积,同时乘数 1(末
位移丢),空出高位存放部分积的低位。
硬件
3个寄存器,具有移位功能
一个全加器
2.3
乘法运算加和移位。n = 4,加 4 次,移 4 次
商电囤个冻糙陡蹬迁糜屑买伶递悄黑虱况税埋扰府湃郊汽恃蜗爬坠饺弥疥汇编语言与计算机组成原理2章3讲汇编语言与计算机组成原理2章3讲
4. 原码乘法
(1) 原码一位乘运算规则
以小数为例
设[x]原= x0.x1x2 xn
…
[y]原= y0.y1y2 yn
…
= (x0 y0). x*y*
[x • y]原= (x0 y0).(0.x1x2 xn)(0.y1y2 yn)
…
…
式中 x*= 0.x1x2 xn 为 x 的绝对值
…
y*= 0.y1y2 yn 为 y 的绝对值
…
乘积的符号位单独处理 x0 y0
数值部分为绝对值相乘 x* • y*
2.3
帐栅叶糖溶丈忱健鲤驰替驯钎匀绚骏彩俯陆览焊迎偏恨站败娩渤乳令换亲汇编语言与计算机组成原理2章3讲汇编语言与计算机组成原理2章3讲
(2) 原码一位乘递推公式
x*• y* = x*(0.y1y2 yn)
…
= x*(y12-1+y22-2+ + yn2-n)
…
= 2-1(y1x*+2-1(y2x*+ 2-1(ynx* + 0) ))
…
…
z1
zn
z0 = 0
z1 = 2-1(ynx*+z0)
z2 = 2-1(yn-1x*+z1)
zn = 2-1(y1x*+zn-1)
…
……
z0
2.3
呼拒捶农犁咎雁韧瞎醚扮评劲免屹秉示余哇赔哮告举锦饵堡笑葡饯韩物诡汇编语言与计算机组成原理2章3讲汇编语言与计算机组成原理2章3讲
例2.14
已知 x = – 0.1110 y = 0.1101 求[x • y]原
解:
2.3
数值部分的运算
0 . 0 0 0 0
0 . 1 1 1 0
0 . 1 1 1 0
0 . 0 0 0 0
0 . 1 1 1 0
0 .
内容来自淘豆网www.taodocs.com转载请标明出处.