Lecture 5 运算器-定点加减法_第1页
Lecture 5 运算器-定点加减法_第2页
Lecture 5 运算器-定点加减法_第3页
Lecture 5 运算器-定点加减法_第4页
Lecture 5 运算器-定点加减法_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、思考n设设X=-0.1010 Y=0.0101 求求(X+Y)补补 和和 (X-Y)补补设机器数字长为设机器数字长为 8 位(含位(含 1 位符号位)位符号位)且且 A = 97,B = +41,用补码求,用补码求 A B思考n定点整数、小数有原码、补码表示形式,手工在纸上怎么定点整数、小数有原码、补码表示形式,手工在纸上怎么加减?举例分析加减?举例分析(两正数相加、两负数相加、正负两个数相两正数相加、两负数相加、正负两个数相加加)。(符号位直接参与运算符号位直接参与运算!)nx原原+y原原=?x+y原原;x原原 +-y原原=?x-y原原nx补补+y补补=?x+y补补;x补补+ -y补补=?x

2、-y补补n计算机中表示数据的寄存寄或存储单元长度固定,计算机中表示数据的寄存寄或存储单元长度固定,n如果运行结果超过这个长度会产生什么结果?如果运行结果超过这个长度会产生什么结果?n什么情况下会发生超出表示范围的现象?什么情况下会发生超出表示范围的现象?n这个结果能否被利用?这个结果能否被利用?n试从计算机的角度来判断运算结果什么时候出错了?试从计算机的角度来判断运算结果什么时候出错了?定点数加减运算课程结构主要内容n定点补码加减法定点补码加减法n溢出检测溢出检测n基本加法器基本加法器解:解:A补补B补补A补补 + B补补+= 0 . 1 0 1 1= 1 . 1 0 1 1= 1 0 . 0

3、 1 1 0= A + B补补验证验证例例设设 A = 0.1011,B = 0.0101求求 A + B补补0.1011 0.01010.0110 A + B = 0 . 0 1 1 0A补补B补补A补补 + B补补+= 1 , 0 1 1 1= 1 , 1 0 1 1= 1 1 , 0 0 1 0= A + B补补验证验证 1001 1110 0101+例例设设 A = 9,B = 5 求求 A+B补补解:解: A + B = 1110 补码加法的运算公式为:补码加法的运算公式为:xy补补x补补y补补 补码减法的运算公式为:补码减法的运算公式为:xy补补 x补补y补补 加减法运算规则:加减

4、法运算规则:参加运算的数都用补码表示。参加运算的数都用补码表示。数据的符号与数据一样参加运算。数据的符号与数据一样参加运算。求差时将减数求补,用求和代替求差。求差时将减数求补,用求和代替求差。运算结果为补码。如果符号位为运算结果为补码。如果符号位为0,表明运算结果为正;,表明运算结果为正; 如果符号位为如果符号位为1,则表明运算结果为负。,则表明运算结果为负。符号位的进位为模值,应该丢掉。符号位的进位为模值,应该丢掉。定点补码加减法 补码加法的运算公式为:补码加法的运算公式为:xy补补x补补y补补证明:下面以模为证明:下面以模为2定义的补码为例,分几种情况来证明这个公式。定义的补码为例,分几种

5、情况来证明这个公式。 (1) x0, y0, 则则xy 0 由于参加运算的数都为正数,故运算结果也一定为正数。又由于正数的补码与真由于参加运算的数都为正数,故运算结果也一定为正数。又由于正数的补码与真值有相同的表示形式,即值有相同的表示形式,即 x 补补x y 补补y 所以所以 x补补y补补xyxy 补补 (2) x0, y 0或或xy 0 时,时, 2 (xy)2,2为符号位进位,即模丢掉为符号位进位,即模丢掉 。 又因为又因为(xy)0,所以,所以 x 补补y 补补xy xy 补补 当当xy0 时,时,2(xy) 2,又因为,又因为(xy) 0,所以,所以 x 补补y 补补 2xy xy

6、补补 这里应将这里应将(xy)看成一个整体。看成一个整体。定点补码加减法 (3 3) x0, 则则xy 0 或或 xy 0 这种情况和第种情况类似,即把这种情况和第种情况类似,即把x与与y的位置对调即可得证。的位置对调即可得证。 (4) x0, y0, 则则xy 0 由于参加运算的数都为负数,故运算结果也一定为负数。又由于负数的补码为:由于参加运算的数都为负数,故运算结果也一定为负数。又由于负数的补码为: x 补补 2x y 补补 2 y 所以所以 x补补y 补补 2(2xy) 由于由于xy为负数,为负数,其绝对值又小于其绝对值又小于1,那么,那么(2 x y)就一定是小于就一定是小于2而大于

7、而大于1的数,的数,所以上式等号右边的所以上式等号右边的2必然丢掉,又因为必然丢掉,又因为xy0,所以,所以 x补补y补补 (2xy) 2(xy)xy 补补 至此证明了在模为至此证明了在模为2的定义下,任意两个数的补码之和等于该两个数之和的补码。的定义下,任意两个数的补码之和等于该两个数之和的补码。 这是补码加法的理论基础,其结论也适用于定点整数。这是补码加法的理论基础,其结论也适用于定点整数。 定点补码加减法 补码减法的运算公式为:补码减法的运算公式为: x补补y补补 x补补y 补补 证明:证明:因为因为 x补补y补补=xy补补 令令x = y 代入,代入,则有则有 y补补y补补=yy补补

8、= 0补补 = 0 所以所以 y补补=y补补所以:所以: x补补y补补 x补补( (y补补)=)=x补补y 补补 定点补码加减法 不难发现,只要能通过不难发现,只要能通过y 补补求得求得y 补补,就可以将补码,就可以将补码减法运算化为补码加法运算。减法运算化为补码加法运算。 已知已知y 补补,求,求y 补补的法规是:对的法规是:对y 补补各位各位(包括符号包括符号位位)取反、末位加取反、末位加1,就可以得到,就可以得到y 补补。 例如:已知例如:已知y 补补1.1010,则,则y 补补0.0110; 又如:已知又如:已知y 补补0.1110,则,则y 补补1.0010; 定点补码加减法证明:证

9、明:-x 补补 与与x 补补的关系。的关系。证明:证明: 当当0 x1时,设时,设 x 补补=0.x1 x2 xn -x =-0.x1 x2 xn所以所以 -x 补补=1.x1* x2* xn* 2-n比较比较x 补补和和-x 补补,发现将,发现将x 补补连同符号位求反,末位加,即得连同符号位求反,末位加,即得x 补补。 当当-1x0时,设时,设 x 补补=1.x1 x2 xn 则则 x =-( 0.x1* x2* xn*2n ) 所以所以 -x= 0. 1.x1* x2* xn*2-n故故 x 补补= 0. 2-n比较比较x 补补和和x 补补,发现,发现将将x 补补连同符号位求反,末位加,即

10、连同符号位求反,末位加,即得得x 补补。 (1) 设设X=-0.1010 Y=0.0101 求求(X+Y)补补 和和 (X-Y)补补解解: (X)补补 = 1.0110 (Y)补补 =0.0101 (-Y)补补 = 1.1011 (X)补补 1.0110 (X)补补 1.0110 + (Y)补补 0.0101 + (-Y)补补 1.1011 (X+Y)补补 1.1011 (X-Y)补补 1.0001 X+Y = -0.0101 X-Y = - 0.1111 加减法运算示例加减法运算示例 (2) 设设X=-0.1011 Y=-0.0101 求求(X+Y)补补 和和 (X-Y)补补解解: (X)补

11、补 = 1.0101 (Y)补补 =1.1011 (-Y)补补 = 0.0101 (X)补补 1.0101 (X)补补 1.0101 + (Y)补补 1.1011 + (-Y)补补 0.0101 (X+Y)补补 1.0000 (X-Y)补补 1.1010 X+Y = -1 X-Y = - 0.0110 加减法运算示例加减法运算示例例例练习练习 1设设 x = y = ,用补码求,用补码求 x+y9161116x + y = 0.1100 =1216练习练习 2 设机器数字长为设机器数字长为 8 位(含位(含 1 位符号位)位符号位) 且且 A = 97,B = +41,用补码求,用补码求 A

12、BA B = + 1110110 = + 118错错错错主要内容n定点补码加减法定点补码加减法n溢出检测溢出检测n基本加法器基本加法器溢出判断溢出判断 由于机器码的位数通常是给定的(如由于机器码的位数通常是给定的(如16位字长,位字长,32位字长),因位字长),因此,数的表示范围是有限的,若两数进行加减运算的结果超出给此,数的表示范围是有限的,若两数进行加减运算的结果超出给定的取值范围,就会产生溢出。定的取值范围,就会产生溢出。溢出是指运算结果超过了数的表示范围。溢出是指运算结果超过了数的表示范围。两个符号相同的数相加,才可能产生溢出;两个符号相同的数相加,才可能产生溢出;两个符号相异的数相加

13、,不可能产生溢出。两个符号相异的数相加,不可能产生溢出。q例,例,X=+0.1011,Y=+0.1001,X+Y=? X补补 0.1011 + Y补补 0.1001 1.0100此时,两个正数相加的结果成为负数,显然是错误的。此时,两个正数相加的结果成为负数,显然是错误的。溢出判断溢出判断q又如,又如,X=0.1101,Y=0.1011,X+Y=? X补补 1.0011 + Y补补 1.0101 0.1000q两个负数相加的结果成为正数,这同样是错误的。两个负数相加的结果成为正数,这同样是错误的。q为判断溢出是否产生,可以采用三种检测方法。为判断溢出是否产生,可以采用三种检测方法。设设 X 的

14、符号为的符号为 Xf,Y 的符号为的符号为 Yf,运算结果的符号为,运算结果的符号为 Sf。 溢出逻辑表达式:溢出逻辑表达式:syxsyxffffffV, 若, 若 V0 无溢出;无溢出; V1 有溢出。有溢出。 即:两个符号相同的数相运算,其运算结果符号相反就产生了溢出现象。即:两个符号相同的数相运算,其运算结果符号相反就产生了溢出现象。 溢出判断溢出判断1、单符号位操作检测、单符号位操作检测n方法:当运算结果的符号位与操作数的符号位不一致时,表示溢出;当加数和被加方法:当运算结果的符号位与操作数的符号位不一致时,表示溢出;当加数和被加数符号位不同时,相加的结果绝对不会溢出。数符号位不同时,

15、相加的结果绝对不会溢出。n例,例,X=+0.1001,Y=+0.1110, 是否溢出?是否溢出? X补补 0.1001 + Y补补 0.1110 1.0111 运算结果产生溢出。运算结果产生溢出。XfYfSfV00111101其它其它0溢出判断溢出判断2、进位检测法、进位检测法nCf C000正确(正数)正确(正数)01上溢上溢10下溢下溢11正确(负数)正确(负数)nV=Cf C0 ,其中其中Cf为符号位产生的进位为符号位产生的进位,C0为最高有为最高有效位产生的进位。效位产生的进位。n看高位的进位输入与其进位输出是否一致看高位的进位输入与其进位输出是否一致n从真值表可判断当两个单符号位补码

16、进行加减运算时,若最高数值从真值表可判断当两个单符号位补码进行加减运算时,若最高数值位向符号位的进位值位向符号位的进位值C0与符号位产生的进位输出值与符号位产生的进位输出值Cf相同时,则没相同时,则没有溢出发生。如果两个进位值不同,则有溢出发生。有溢出发生。如果两个进位值不同,则有溢出发生。n溢出表达式:溢出表达式: V Cf C0。 xf yf C0 S Cf V 说 明 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 1 0 1 0 0 0 0 1 0 两正数加,结果为正,没有溢出

17、两正数加,结果为负,有溢出 两异号数加,没有溢出 两异号数加,没有溢出 两异号数加,没有溢出 两异号数加,没有溢出 两负数加,结果为正,有溢出 两负数加,结果为负,没有溢出 设设xfxf和和yfyf表示两个相加数的符号,表示两个相加数的符号,C0C0表示高位的进位信号,表示高位的进位信号,CfCf表示符号位的进位信号,表示符号位的进位信号,S S表示结果的符号,表示结果的符号,V V为溢出信号为溢出信号n 例,例,X=+0.1011,Y=+0.1101 X补补 0.1011 + Y补补 0.1101 1.1000若最高数值位向符号位的进位为若最高数值位向符号位的进位为1,符号位产生的进位为,符

18、号位产生的进位为0,表示有溢出。,表示有溢出。n又如,又如,X=-0.1011,Y=-0.1100 X补补 1.0101 + Y补补 1.0100 0.1001若最高数值位向符号位的进位为若最高数值位向符号位的进位为0,符号位产生的进位为,符号位产生的进位为1,表示有溢出。,表示有溢出。溢出判断溢出判断3、变形补码检测法、变形补码检测法(双符号位双符号位)n方法:每个操作数在运算时都采用两个符号位,正数用方法:每个操作数在运算时都采用两个符号位,正数用00表示,负数用表示,负数用11表示,两个符号位与码值一起参加运算;表示,两个符号位与码值一起参加运算;若运算结果的两个符号位的代码不一致时表示

19、溢出,两个若运算结果的两个符号位的代码不一致时表示溢出,两个符号位代码一致时,没有溢出。符号位代码一致时,没有溢出。n设左边第一位为第一符号位设左边第一位为第一符号位Sf1,相邻的为第二符号位相邻的为第二符号位Sf2,则则 溢出逻辑表达式:溢出逻辑表达式: VSf1 Sf2 若若V0无溢出;无溢出;V1有溢出。有溢出。溢出判断溢出判断主要内容n定点补码加减法定点补码加减法n溢出检测溢出检测n基本加法器基本加法器基本的加法器基本的加法器n基本的加法和减法器基本的加法和减法器n半加器半加器HiAi Bi不考虑进位不考虑进位n全加器全加器考虑低位进位考虑低位进位Ci-1和向高位的进位和向高位的进位C

20、i 一位全加器真值表一位全加器真值表输入输出AiBiCiSiCi10000000110010100110110010101011100111111基本的加法器基本的加法器iiiiCBASiiiiiiiiiiiiiiiiiCBABACBABACBCABAC).( .)(1基本的加法器基本的加法器FA逻辑电路和框图逻辑电路和框图FA(全加器)逻辑电路图iiiiCBASiiiiiiiiiiiiiiiiiCBABACBABACBCABAC).( .)(1FA框图图行波进位的补码加法/加法器基本的加法器基本的加法器 n位行波进位加法器位行波进位加法器基本的加法器基本的加法器 n位行波进位加法器位行波进位

21、加法器B0B0A0A0MB1B1A1A1B Bn-2n-2A An-2n-2B Bn-1n-1A An-1n-1溢出溢出S S0 0S S1 1S Sn-2n-2S Sn-1n-1一个“与”门或者一个“或”门的时间延迟为一个T,异或门为3T0 0时刻时刻3T3T时刻时刻4T4T时刻时刻6T6T时刻时刻6T6T2T2T时刻时刻9T9T时刻时刻6T6T4T4T时刻时刻6T6T2nT2nT时刻时刻6T6T2(n-1)T2(n-1)T时刻时刻11T11T时刻时刻6T6T2(n-1)T+3T2(n-1)T+3T时刻时刻6T6T2nT+3T2nT+3T时刻时刻C C0 0C C2 2C Cn-1n-1C

22、C1 1C Cn n并行加法器iiiiiiCBABAC)(10001CPGC由知令iiiiiiBAPBAG,0010111112CPPGPGCPGC.1111nnnnnGCPGC.&A1 B1=1A0 B0=1A1 B1C0&A0 B0&C2基本的加法器基本的加法器实现加法的逻辑图实现加法的逻辑图 实现加法时应提供以下控制信号:AALU,BALU,+,ALUA 实现减法时应提供以下控制信号:AALU,B*ALU,ALU+1,+,ALUA小结n定点补码加减法运算方法,理解减法运算用加法来实现定点补码加减法运算方法,理解减法运算用加法来实现n三种溢出检测方法及溢出判断的逻辑表达式三种溢出检测方法及溢出判断的逻辑表达式n基本加法器:半加器,全加器中和及进位的表达式、理解基本加法器:半加器,全加器中和及进位的表达式、理解电路实现电路实现作业55-1.两个定点补码数分别放在寄存器两个定点补码数分别放在寄存器A,B中,中,A0,B0是符是符号位,试列出两数加减运算的溢出判断条件并画出逻辑电号位,试列出两数加减运算的溢出判断条件并画出逻辑电路。路。5-2.用补码运算求用补码运算求x-y,并判断是否溢出。并判断是否溢出。x=-0.0100, y=0.1001x=-0.1011, y=-0.10105-3.已知已知x补补=1.1001,y补补=1.1110,计算,计算2x补补+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论