原码一位乘法.pptVIP

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
原码一位乘法

本章学习内容 运算器的设计方法 定点数的加、减、乘、除运算 浮点数的加、减、乘、除运算 十进制数的运算 3.3 定点乘法运算 ⑴ 利用乘除运算子程序实现乘除运算 基本思想:采用软件实现乘除运算。 通常是利用计算机中的加/减运算指令、移位指令及控制类指令组成循环程序,通过在运算器中的加法器、移位器等基本部件上的反复加/减操作,得到运算结果。 这种方式所需硬件简单,但实现速度较慢,主要应用在早期的小、微型机上。 ⑵采用乘除运算部件实现乘除运算 基本思想:在加法器的基础上增加左、右移位及计数器等逻辑线路构成乘除运算部件来实现乘除运算。 设置有乘除运算指令,用户只需执行乘除指令即可进行乘除运算。 实现乘除运算的速度比上一种方式快,但需要根据一定的乘除算法构建乘除运算部件,所需的硬件线路较复杂。 ⑶ 利用专用阵列乘除运算器实现乘除运算 基本思想:将多个加减运算部件排成乘除运算阵列,依靠硬件资源的重复设置,同时进行多位乘除运算的乘除运算,从而赢得乘除运算的高速度。 定点乘法运算 原码乘法运算 补码乘法运算 定点除法运算 原码除法运算 补码除法运算 例3.8:x=0.1101,y=0.1011 求x×y=? 现象: (1)每个部分积的值是由乘数y对应位的数值决定的。当乘数对应位数值为1时部分积取值为被乘数x,当乘数对应位数值为0时部分积取值为全0。 (2)各相加数从乘数的最低位到最高位,逐位求取,并将求得的各相加数逐个左移一位,最后一步一次求和。 (3)两个n位数相乘得8位乘积,共n个部分积需2n位加法器相加。 有问题!!! (1)在最后一步一次完成了n个部分积的求和,而计算机运算器很难实现一次完成多个数据的同时相加,通常只能完成对两个数的求和。 (2)每次得到的部分积都需左移一位,最终部分积的位数将变为乘数y位数的两倍,这将要求计算机加法器的位数是寄存器位数的两倍,而计算机设计时加法器的位数一般与寄存器的位数相同。 (3)部分积取被乘数x的值还是取零值是由乘数对应位上的取值为1还是0决定的,乘数y每一位的值是0还是1都能直接看见。而在计算机内从存放乘数的寄存器中逐位取出每一位来判别该位值是0还是1来决定相加数的值是不方便的。 3.3.1 原码乘法运算 在定点机中,两个数的原码乘法运算包括: (1)乘积的符号处理 (2)两数绝对值相乘 设 [x]原=xf.x1x2…xn [y]原=yf.y1y2…yn [Z]原=[x]原×[y]原=zf.z1z2…zn 符号处理: 根据“同号相乘,乘积为正;异号相乘,乘积为负”,得符号运算的表达式为 zf=xf⊕yf。 一位原码乘法运算 x×y=x×0.y1y2y3y4 =x×(2-1y1+2-2y2+2-3y3+2-4y4) =2-1xy1+2-2xy2+2-3xy3+2-4xy4 =2-1{2-3xy4+2-2xy3+2-1xy2+xy1} =2-1{2-1[2-2xy4+2-1xy3+xy2]+xy1} =2-1{2-1[2-1(2-1xy4+xy3)+xy2]+xy1} =2-1{2-1[2-1(2-10+xy4+xy3)+xy2]+xy1} 根据上式,可将乘法转换为一系列加法与移位操作。将递推公式推广到n位,得: Z0=0 (初始部分积为0) Z1=2-1(Z0+xyn) Z2=2-1(Z1+xyn-1) … Zn=2-1(Zn-1+xy1)=x×y 原码一位乘法的算法 ①?积的符号单独按两操作数的符号模2加(异或)得到。用被乘数和乘数的数值部分进行运算。 ② 以乘数的最低位作为乘法判别位,若判别位为1,则在前次部分积(初始部分积为0)上加上被乘数,然后连同乘数一起右移一位;若判别位为0,则在前次部分积上加0(或不加),然后连同乘数一起右移一位。 ③ 重复第②步直到运算n次为止。(n为乘数数值部分的长度) 例3.9 根据原码一位乘法的算法计算例3.8。 解:[x]原=0.1101,[y]原=1.1011, 乘积 [z]原=[x×y]原 ① 符号位单独处理得 zf=0⊕1=1 ② 将被乘数和乘数的绝对值的数值部分相乘。 [|x|]原=0.1101 [|y|]原=0.1011 原码一位乘法计算演示动画 数值部分为4位,共需运算4次。 得:|x×y|=0加上符号部分得:[x×y]原=1 即:x×y=-0 原码一位乘法的硬件实现 A寄存器:存放部分积高位部分,初始为0

文档评论(0)

zw4044 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档