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

下载本文档

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

文档简介

1、思考,设X=-0.1010 Y=0.0101 求(X+Y)补 和 (X-Y)补,设机器数字长为 8 位(含 1 位符号位) 且 A = 97,B = +41,用补码求 A B,思考,定点整数、小数有原码、补码表示形式,手工在纸上怎么加减?举例分析(两正数相加、两负数相加、正负两个数相加)。(符号位直接参与运算!) x原+y原=?x+y原;x原 +-y原=?x-y原 x补+y补=?x+y补;x补+ -y补=?x-y补 计算机中表示数据的寄存寄或存储单元长度固定, 如果运行结果超过这个长度会产生什么结果? 什么情况下会发生超出表示范围的现象? 这个结果能否被利用? 试从计算机的角度来判断运算结果什

2、么时候出错了?,定点数加减运算,课程结构,主要内容,定点补码加减法 溢出检测 基本加法器,解:,A补,B补,A补 + B补,+,= 0 . 1 0 1 1,= 1 . 1 0 1 1,= 1 0 . 0 1 1 0,= A + B补,验证,0.1011, 0.0101,0.0110, A + B = 0 . 0 1 1 0,A补,B补,A补 + B补,+,= 1 , 0 1 1 1,= 1 , 1 0 1 1,= 1 1 , 0 0 1 0,= A + B补,验证, 1001, 1110,解:, A + B = 1110, 补码加法的运算公式为: xy补x补y补 补码减法的运算公式为: xy补

3、 x补y补 加减法运算规则: 参加运算的数都用补码表示。 数据的符号与数据一样参加运算。 求差时将减数求补,用求和代替求差。 运算结果为补码。如果符号位为0,表明运算结果为正; 如果符号位为1,则表明运算结果为负。 符号位的进位为模值,应该丢掉。,定点补码加减法, 补码加法的运算公式为:xy补x补y补 证明:下面以模为2定义的补码为例,分几种情况来证明这个公式。 (1) x0, y0, 则xy 0 由于参加运算的数都为正数,故运算结果也一定为正数。又由于正数的补码与真值有相同的表示形式,即 x 补x y 补y 所以 x补y补xyxy 补 (2) x0, y 0或xy 0 时, 2 (xy)2,

4、2为符号位进位,即模丢掉 。 又因为(xy)0,所以 x 补y 补xy xy 补 当xy0 时,2(xy) 2,又因为(xy) 0,所以 x 补y 补 2xy xy 补 这里应将(xy)看成一个整体。,定点补码加减法,(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而大于1的数,所以上式等号右边的2必然丢掉,又因为

5、xy0,所以 x补y补 (2xy) 2(xy)xy 补 至此证明了在模为2的定义下,任意两个数的补码之和等于该两个数之和的补码。 这是补码加法的理论基础,其结论也适用于定点整数。,定点补码加减法, 补码减法的运算公式为: x补y补 x补y 补 证明: 因为 x补y补=xy补 令x = y 代入, 则有 y补y补=yy补 = 0补 = 0 所以 y补=y补 所以: x补y补 x补(y补)=x补y 补,定点补码加减法,不难发现,只要能通过y 补求得y 补,就可以将补码减法运算化为补码加法运算。 已知y 补,求y 补的法规是:对y 补各位(包括符号位)取反、末位加1,就可以得到y 补。 例如:已知y

6、 补1.1010,则y 补0.0110; 又如:已知y 补0.1110,则y 补1.0010;,定点补码加减法,证明:-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 补连同符号位求反,末位加,即得

7、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)补 = 1.0101 (Y)补 =1.1011 (-Y)补 = 0.0101 (X)补

8、 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,加减法运算示例,例,练习 2 设机器数字长为 8 位(含 1 位符号位) 且 A = 97,B = +41,用补码求 A B,A B = + 1110110 = + 118,错,错,主要内容,定点补码加减法 溢出检测 基本加法器,溢出判断,由于机器码的位数通常是给定的(如16位字长,32位字长),因此,数的表示范围是有限的,若两数进行加减运算的结果超出给定的取值范围,就会产生溢出。 溢出是指运算

9、结果超过了数的表示范围。 两个符号相同的数相加,才可能产生溢出; 两个符号相异的数相加,不可能产生溢出。 例,X=+0.1011,Y=+0.1001,X+Y=? X补 0.1011 + Y补 0.1001 1.0100 此时,两个正数相加的结果成为负数,显然是错误的。,溢出判断,又如,X=0.1101,Y=0.1011,X+Y=? X补 1.0011 + Y补 1.0101 0.1000 两个负数相加的结果成为正数,这同样是错误的。 为判断溢出是否产生,可以采用三种检测方法。,溢出判断,1、单符号位操作检测 方法:当运算结果的符号位与操作数的符号位不一致时,表示溢出;当加数和被加数符号位不同时

10、,相加的结果绝对不会溢出。 例,X=+0.1001,Y=+0.1110, 是否溢出? X补 0.1001 + Y补 0.1110 1.0111 运算结果产生溢出。,溢出判断,2、进位检测法 Cf C000正确(正数)01上溢10下溢11正确(负数) V=Cf C0 ,其中Cf为符号位产生的进位,C0为最高有效位产生的进位。 看高位的进位输入与其进位输出是否一致,从真值表可判断当两个单符号位补码进行加减运算时,若最高数值位向符号位的进位值C0与符号位产生的进位输出值Cf相同时,则没有溢出发生。如果两个进位值不同,则有溢出发生。 溢出表达式: V CfC0。,设xf和yf表示两个相加数的符号,C0

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

12、时表示溢出,两个符号位代码一致时,没有溢出。 设左边第一位为第一符号位Sf1,相邻的为第二符号位Sf2,则 溢出逻辑表达式: VSf1Sf2 若V0无溢出;V1有溢出。,溢出判断,主要内容,定点补码加减法 溢出检测 基本加法器,基本的加法器,基本的加法和减法器 半加器HiAi Bi不考虑进位 全加器考虑低位进位Ci-1和向高位的进位Ci,一位全加器真值表,基本的加法器,基本的加法器FA逻辑电路和框图,FA(全加器)逻辑电路图,FA框图,图行波进位的补码加法/加法器,基本的加法器 n位行波进位加法器,基本的加法器 n位行波进位加法器,一个“与”门或者一个“或”门的时间延迟为一个T,异或门为3T,

13、9T时刻,11T时刻,6T2(n-1)T+3T时刻,C0,C2,Cn-1,C1,Cn,并行加法器,由,知,令,C0,&,&,&,C2,基本的加法器实现加法的逻辑图, 实现加法时应提供以下控制信号: AALU,BALU,+,ALUA 实现减法时应提供以下控制信号: AALU,B*ALU,ALU+1,+,ALUA,小结,定点补码加减法运算方法,理解减法运算用加法来实现 三种溢出检测方法及溢出判断的逻辑表达式 基本加法器:半加器,全加器中和及进位的表达式、理解电路实现,作业5,5-1.两个定点补码数分别放在寄存器A,B中,A0,B0是符号位,试列出两数加减运算的溢出判断条件并画出逻辑电路。 5-2.

14、用补码运算求x-y,并判断是否溢出。 x=-0.0100, y=0.1001 x=-0.1011, y=-0.1010 5-3.已知x补=1.1001,y补=1.1110,计算2x补+1/2y补,并判断结果是否溢出。,5-4 一个C语言程序在一台32位机器上运行,程序中定义了三个变量xyz,其中x和z是int型 ,y是short型。当x=127,y=-9时 ,执行赋值语句z=x+y后,xyz的机器码分别是 ( ) 5-5 某字长为 8位的计算机中,已知整型变量 x、y的机器数分别为x补=1 1110100,y补=1 0110000。若整型变量 z=2*x+y/2,则 z的机器数为,5-6. 用一位全加器设计一个4位8421BCD码加法器。当4位加地结果

温馨提示

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

评论

0/150

提交评论