收藏 分享(赏)

第4章 运算方法与运算器-1.ppt

上传人:gnk289057 文档编号:9231519 上传时间:2019-07-30 格式:PPT 页数:37 大小:1.49MB
下载 相关 举报
第4章 运算方法与运算器-1.ppt_第1页
第1页 / 共37页
第4章 运算方法与运算器-1.ppt_第2页
第2页 / 共37页
第4章 运算方法与运算器-1.ppt_第3页
第3页 / 共37页
第4章 运算方法与运算器-1.ppt_第4页
第4页 / 共37页
第4章 运算方法与运算器-1.ppt_第5页
第5页 / 共37页
点击查看更多>>
资源描述

1、1,第4章 运算方法与运算器,4.1 定点数的加减运算及实现 4.2 定点数的乘法运算及实现 4.3 定点数除法运算及实现 4.4 定点运算器的组成与结构 4.5 浮点运算及运算器 作业,2,4.1 定点数的加减运算及实现,一、补码加减运算及运算器 二、机器数的移位运算,3,一、补码加减运算及运算器,1、补码加减运算方法 2、补码加减运算的溢出判断 3、补码加减运算器,1、补码加减运算方法,补码的加减运算的公式是: X+Y补 = X补 + Y补 X-Y补 = X补 + -Y补 特点: 使用补码进行加减运算,符号位和数值位一样参加运算。 补码的减法可以用加法来实现,任意两数之差的补码等于被减数的

2、补码与减数相反数的补码之和 。,5,求补运算:Y补 -Y补,求补规则:将Y补包括符号位在内每一位取反,末位加1。 若Y补 = Y0,Y1Yn ,则:,若Y补 = Y0.Y1Yn ,则:,例: X补 =0.1101,则: X补 = ?Y补 =1.1101,则: Y补 = ?,1.0011,0.0011,6,补码加减运算举例,例:已知X=+1011,Y=-0100,用补码计算X+Y和X-Y。 写出补码:X补 =0,1011 Y补 =1,1100 -Y补 =0,0100 计算:,0,1011, 1,1100,0,0111,XY补 = 0, 0111,0,1011, 0,0100,0,1111,XY补

3、 = 0, 1111,7,2、补码加减运算的溢出判断,当运算结果超出机器数的表示范围时,称为溢出。计算机必须具备检测运算结果是否发生溢出的能力,否则会得到错误的结果(例4.2)。 对于加减运算,可能发生溢出的情况:同号(两数)相加,或者异号(两数)相减。 确定发生溢出的情况: 正数相加,且结果符号位为1; 负数相加,且结果符号位为0; 正数负数,且结果符号位为1; 负数正数,且结果符号位为0;,8,常用的判溢方法(补码加减运算),(1)单符号位判溢方法2 当最高有效位产生的进位和符号位产生的进位不同时,加减运算发生了溢出。 VC1Cf (2)双符号位判溢方法 X和Y采用双符号位补码参加运算,正

4、数的双符号位为00,负数的双符号位为11;当运算结果的两位符号Sf1 Sf2不同时(01或10),发生溢出。 V Sf1 Sf2= Xf Yf Cf Sf Sf1 Sf2=01,则正溢出;Sf1 Sf2=10,则负溢出。,9,双符号位判溢方法举例,例:用补码计算X+Y和X-Y (1)X=+1000,Y=+1001 (2)X=-1000,Y=1001,Sf1 Sf2=01,正溢出,Sf1 Sf2=11,无溢出,Sf1 Sf2=00,无溢出,Sf1 Sf2=10,负溢出,10,3、补码加减运算器,11,3、补码加减运算器,核心部件:一个普通的二进制并行加法器。 A:累加器,存放X补;B:寄存器,存

5、放Y补;,12,二、机器数的移位运算,二进制数据(真值)每相对于小数点左移一位,相当于乘以2;每相对于小数点右移一位,相当于除以2。 计算机中的移位运算分为: 1、逻辑移位:将移位的数据视为无符号数据,各数据位在位置上发生了变化,导致无符号数据的数值(无正负)放大或缩小。 2、算术移位:将移位的数据视为带符号数据(机器数)。算术移位的结果,在数值的绝对值上进行放大或缩小,同时,符号位必须要保持不变。 3、循环移位:所有的数据位在自身范围内进行左移或者右移,左移时最高位移入最低位,右移时最低位移入最高位。,13,补码的算术移位,算术左移:符号位不变,高位移出,低位补0。 为保证补码算术左移时不发

6、生溢出,移位的数据最高有效位必须与符号位相同。 在不发生溢出的前提下,用硬件实现补码的算术左移时,直接将数据最高有效位移入符号位,不会改变机器数的符号。,算术右移:符号位不变,低位移出,高位正数补0,负数补1,即高位补符号位。,14,补码的算术移位举例,例:设X0.1001,Y0.0101,求 X补 ? 2X补 ? X/2补? Y补 ? 2Y补 ? Y/2补?,0.1001,1.0010(溢出),0.0100,1.1011,1.0110,1.1101,15,4.2 定点数的乘法运算及实现,一、计算机中乘除运算的实现方法 二、原码乘法算法 三、原码乘法的硬件实现 四、阵列乘法器,16,一、计算机

7、中乘除运算的实现方法,由于计算机的软硬件在逻辑上具有一定的等价性,因此实现乘除法运算,可以有三种方式: 1、用软件实现。 硬件上:设计简单,没有乘法器和除法器。 指令系统:没有乘除指令,但有加/减法和移位指令 实现:乘除运算通过编制一段子程序来实现 算法:程序中运用串行乘除运算算法,循环累加、右移指令乘法,循环减、左移指令除法。 运算速度:较慢。 适用场合:单片机。,17,一、计算机中乘除运算的实现方法,2、用硬件乘法器和除法器实现。 硬件上:设置有并行加法器、移位器和若干循环、计数控制逻辑电路搭成的串行乘除法器。 指令系统:具有乘除法指令。 实现:乘除运算通过微程序一级(硬件微程序)来实现。

8、 算法:在微程序中依据串行乘除运算算法,循环累加、右移指令乘法,循环减、左移指令除法。 运算速度:有所提高,但硬件设计也相对复杂。 适用场合:低性能CPU。,18,一、计算机中乘除运算的实现方法,3、用高速的阵列乘法器和阵列除法器来实现。 硬件上:设置有专用的、并行运算的阵列乘法器和阵列除法器。 指令系统:具有乘除法指令。 实现:完全通过硬件来实现。 算法:并行乘/除法。 运算速度:很快,但硬件设计相当复杂。 适用场合:高性能CPU。,19,二、原码乘法算法,1、手工乘法算法 手工计算10111101,步骤: 手工算法:对应每1位乘数求得1项位积,并将位积逐位左移,然后将所有的位积一次相加,得

9、到最后的乘积。 乘法的机器算法:从乘数的最低位开始,每次根据乘数位得到其位积,乘数位为0,位积为0,乘数位为1,则位积为被乘数;用原部分积右移1位加上本次位积,得新部分积;初始部分积为0。,20,二、原码乘法算法,2、原码一位乘法算法:假设X原=XS X1 X2 Xn , Y原=YS Y1 Y2 Yn , P=XY,PS是积的符号: 符号位单独处理 Ps=Xs Ys 绝对值进行数值运算 |P|=|X|*|Y| 例如:X=+1011,Y=-1101,用原码一位乘法计算P=XY。,21,举例,X原=0,1011 Y原=1,1101 Ps=XsYs=01=1 |P| = |X|Y|,P原=1,100

10、01111,22,三、原码乘法的硬件实现,控制逻辑电路,23,原码一位乘法,00000,1101,0 0 0 0 0,1 1 0 1,为各寄存器给初值,0 1 0 1 1,24,第一次求部分积,00000,1101,0 1 0 1 1,01011,1101,加运算:|X|,25,第一次求部分积,00000,1101,0 0 1 0 1,1 1 1 0,01011,1101,右移1位,00101,1110,26,第二次求部分积,00000,1101,0 0 1 0 1,1 1 1 0,01011,1101,加运算:0,00101,1110,00101,1110,27,第二次求部分积,00000,

11、1101,0 0 0 1 0,1 1 1 1,01011,1101,右移1位,00101,1110,00101,1110,00010,1111,28,第三次求部分积,00000,1101,0 1 1 0 1,01011,1101,加运算:|X|,00101,1110,00101,1110,00010,1111,01101,1111,29,第三次求部分积,00000,1101,0 0 1 1 0,1 1 1 1,01011,1101,右移1位,00101,1110,00101,1110,00010,1111,01101,1111,00110,1111,30,第四次求部分积,00000,1101,

12、1 0 0 0 1,01011,1101,加运算:|X|,00101,1110,00101,1110,00010,1111,01101,1111,00110,1111,10001,1111,31,第四次求部分积,00000,1101,0 1 0 0 0,1 1 1 1,01011,1101,右移1位,00101,1110,00101,1110,00010,1111,01101,1111,00110,1111,01000,1111,低位积,高位积,符号位异或 结果为:1,10001111,32,原码一位乘法流程 :,33,四、阵列乘法器,原理类似于二进制手工算法 位积的每一位XiYj都可以用一个与门实现,而每一位的相加均可以使用一个全加器来实现。,34,绝对值阵列乘法器,动画演示,35,补码阵列乘法器,36,作业,P107: 1,2,4,37,The End !,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报