原码一位乘法

上传人:206****923 文档编号:54818937 上传时间:2018-09-20 格式:PPT 页数:20 大小:224.50KB
返回 下载 相关 举报
原码一位乘法_第1页
第1页 / 共20页
原码一位乘法_第2页
第2页 / 共20页
原码一位乘法_第3页
第3页 / 共20页
原码一位乘法_第4页
第4页 / 共20页
原码一位乘法_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《原码一位乘法》由会员分享,可在线阅读,更多相关《原码一位乘法(20页珍藏版)》请在金锄头文库上搜索。

1、第三章 运算方法与运算器,小飞守角制作,本章学习内容,运算器的设计方法 定点数的加、减、乘、除运算 浮点数的加、减、乘、除运算 十进制数的运算,小飞守角制作,3.3 定点乘法运算, 利用乘除运算子程序实现乘除运算 基本思想:采用软件实现乘除运算。通常是利用计算机中的加/减运算指令、移位指令及控制类指令组成循环程序,通过在运算器中的加法器、移位器等基本部件上的反复加/减操作,得到运算结果。这种方式所需硬件简单,但实现速度较慢,主要应用在早期的小、微型机上。,小飞守角制作,采用乘除运算部件实现乘除运算 基本思想:在加法器的基础上增加左、右移位及计数器等逻辑线路构成乘除运算部件来实现乘除运算。设置有

2、乘除运算指令,用户只需执行乘除指令即可进行乘除运算。实现乘除运算的速度比上一种方式快,但需要根据一定的乘除算法构建乘除运算部件,所需的硬件线路较复杂。,小飞守角制作, 利用专用阵列乘除运算器实现乘除运算 基本思想:将多个加减运算部件排成乘除运算阵列,依靠硬件资源的重复设置,同时进行多位乘除运算的乘除运算,从而赢得乘除运算的高速度。,小飞守角制作,定点乘法运算 原码乘法运算 补码乘法运算 定点除法运算 原码除法运算 补码除法运算,采用乘除运算部件实现乘除运算,小飞守角制作,例3.8:x0.1101,y0.1011 求xy?,小飞守角制作,现象: (1)每个部分积的值是由乘数y对应位的数值决定的。

3、当乘数对应位数值为1时部分积取值为被乘数x,当乘数对应位数值为0时部分积取值为全0。 (2)各相加数从乘数的最低位到最高位,逐位求取,并将求得的各相加数逐个左移一位,最后一步一次求和。 (3)两个n位数相乘得8位乘积,共n个部分积需2n位加法器相加。,小飞守角制作,有问题! (1)在最后一步一次完成了n个部分积的求和,而计算机运算器很难实现一次完成多个数据的同时相加,通常只能完成对两个数的求和。 (2)每次得到的部分积都需左移一位,最终部分积的位数将变为乘数y位数的两倍,这将要求计算机加法器的位数是寄存器位数的两倍,而计算机设计时加法器的位数一般与寄存器的位数相同。 (3)部分积取被乘数x的值

4、还是取零值是由乘数对应位上的取值为1还是0决定的,乘数y每一位的值是0还是1都能直接看见。而在计算机内从存放乘数的寄存器中逐位取出每一位来判别该位值是0还是1来决定相加数的值是不方便的。,小飞守角制作,3.3.1 原码乘法运算,在定点机中,两个数的原码乘法运算包括: (1)乘积的符号处理 (2)两数绝对值相乘 设 x原xf.x1x2xny原yf.y1y2ynZ原x原y原zf.z1z2zn符号处理: 根据“同号相乘,乘积为正;异号相乘,乘积为负”,得符号运算的表达式为 zfxfyf。,小飞守角制作,一位原码乘法运算,xyx0.y1y2y3y4x(2-1y12-2y22-3y32-4y4)2-1x

5、y12-2xy22-3xy32-4xy42-12-3xy42-2xy32-1xy2xy12-12-12-2xy42-1xy3xy2xy12-12-12-1(2-1xy4xy3)xy2xy12-12-12-1(2-1xy3)xy2xy1,小飞守角制作,根据上式,可将乘法转换为一系列加法与移位操作。将递推公式推广到n位,得:Z00 (初始部分积为0) Z12-1(Z0xyn) Z22-1(Z1xyn-1) Zn2-1(Zn-1xy1)xy,小飞守角制作,原码一位乘法的算法, 积的符号单独按两操作数的符号模2加(异或)得到。用被乘数和乘数的数值部分进行运算。 以乘数的最低位作为乘法判别位,若判别位为

6、1,则在前次部分积(初始部分积为0)上加上被乘数,然后连同乘数一起右移一位;若判别位为0,则在前次部分积上加0(或不加),然后连同乘数一起右移一位。 重复第步直到运算n次为止。(n为乘数数值部分的长度),小飞守角制作,例3.9 根据原码一位乘法的算法计算例3.8。 解:x原0.1101,y原1.1011,乘积 z原xy原 符号位单独处理得 zf011 将被乘数和乘数的绝对值的数值部分相乘。 |x|原0.1101 |y|原0.1011 原码一位乘法计算演示动画数值部分为4位,共需运算4次。 得:|xy|0.10001111 加上符号部分得:xy原1.10001111 即:xy0.10001111

7、,小飞守角制作,原码一位乘法的硬件实现,小飞守角制作,A寄存器:存放部分积高位部分,初始为0 B寄存器:存放被乘数x C寄存器:存放乘数y和部分积低位部分,初始为乘数y CR:计数器。用于记录乘法次数运算初始时,CR0,每进行一次运算CR1,当计数到CRn时,将CT清0,结束运算。 Cj:进位位 CT:乘法控制触发器,CT1,允许发出移位脉冲,进行乘法运算CT0,不允许发出移位脉冲,停止乘法运算,小飞守角制作,问题回顾 (1)在最后一步一次完成了n个部分积的求和,而计算机运算器很难实现一次完成多个数据的同时相加,通常只能完成对两个数的求和。 (2)每次得到的部分积都需左移一位,最终部分积的位数

8、将变为乘数y位数的两倍,这将要求计算机加法器的位数是寄存器位数的两倍,而计算机设计时加法器的位数一般与寄存器的位数相同。 (3)部分积取被乘数x的值还是取零值是由乘数对应位上的取值为1还是0决定的,乘数y每一位的值是0还是1都能直接看见。而在计算机内从存放乘数的寄存器中逐位取出每一位来判别该位值是0还是1来决定相加数的值是不方便的。,小飞守角制作,问题解决啦! (1)设初始部分积的值为0,每求得一个部分积,就同时与上一次部分积相加,每次运算器都是完成两个数据的加法,最终可得到结果。 (2)将每次的部分积左移一位操作变为加法之前部分积右移一位来实现,因为前一次部分积的最低位是不参与相加计算的,将右移操作移出位用专门的寄存器来保存。 (3)每求一次部分积时,使存放乘数y的寄存器执行一次右移操作,这样每次就从寄存器的最低位直接取值就可以了。,小飞守角制作,原码一位乘法的运算流程,小飞守角制作,课后延伸,编写一个程序计算123456789012345678990,将结果输出。 提示:大数相乘过程中会超过计算机中整型数据的表示范围,因此必须利用本次学习的乘法运算过程借助于字符串实现。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号