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

下载本文档

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

文档简介

思考设X=-0.1010Y=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]补计算机中表示数据的寄存寄或存储单元长度固定,如果运行结果超过这个长度会产生什么结果?什么情况下会发生超出表示范围的现象?这个结果能否被利用?试从计算机的角度来判断运算结果什么时候出错了?定点数加减运算课程结构计算机系统统计硬件运算器数据表示数据数据定点原码反码补码移码浮点一般表示规格化IEEE754非数值数据字符汉字BCD码校验码奇偶校验海明校验循环冗余校验运算方法定点数补码加减乘除浮点数加减乘除规格化溢出判断运算器一般运算快速运算典型ALU存储器控制器总线输入输出软硬件接口软件主要内容定点补码加减法溢出检测基本加法器解:[A]补[B]补[A]补

+[B]补+=0.1011=1.1011=10.0110=[A+B]补验证例设A=0.1011,B=–

0.0101求[A+B]补0.1011–0.01010.0110∴A+B

=0.0110[A]补[B]补[A]补

+[B]补+=1,0111=1,1011=11,0010=[A+B]补验证–1001–1110–0101+例设A=–9,B=–5求[A+B]补解:∴A+B

=–1110①

补码加法的运算公式为:[x+y]补=[x]补+[y]补②

补码减法的运算公式为:[x-y]补=

[x]补+[-y]补

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

(1)

x>0,y>0,则x+y>0

由于参加运算的数都为正数,故运算结果也一定为正数。又由于正数的补码与真值有相同的表示形式,即[x]补=x[y]补=y

所以[x]补+[y]补=x+y=[x+y]补

(2)x>0,y<0,则x+y>0或x+y<0

当参加运算的数一个为正数,一个为负数时,则运算结果有正、负两种可能。根据补码定义有:

[x]补=x[y]补=2+y所以[x]补+[y]补=2+(x+y)当x+y>0时,2+(x+y)>2,2为符号位进位,即模丢掉。又因为(x+y)>0,所以

[x]补+[y]补=x+y=[x+y]补当x+y<0时,2+(x+y)<2,又因为(x+y)<0,所以

[x]补+[y]补=2+x+y=[x+y]补这里应将(x+y)看成一个整体。定点补码加减法

(3)

x<0,

y>0,

则x+y>0或x+y<0

这种情况和第②种情况类似,即把x与y的位置对调即可得证。(4)

x<0,

y<0,

则x+y<0

由于参加运算的数都为负数,故运算结果也一定为负数。又由于负数的补码为:

[x]

补=

2+x[y]

补=

2+

y

所以

[x]补+[y]

补=

2+(2+x+y)

由于x+y为负数,其绝对值又小于1,那么(2+

x

y)就一定是小于2而大于1的数,所以上式等号右边的2必然丢掉,又因为x+y<0,所以

[x]补+[y]补=

(2+x+y)=

2+(x+y)=[x+y]

至此证明了在模为2的定义下,任意两个数的补码之和等于该两个数之和的补码。这是补码加法的理论基础,其结论也适用于定点整数。

定点补码加减法②

补码减法的运算公式为:

[x]补-[y]补=

[x]补+[-y]

证明:因为[x]补+[y]补=[x+y]补令x=-y代入,则有[-y]补+[y]补=[-y+y]补=[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;

定点补码加减法证明:[-x]

补与[x]

补的关系。证明:①当0≤x<1时,设

[x]

补=0.x1x2…

xn

-x=-0.x1x2…

xn所以

[-x]

补=1.x1*x2*…

xn*

+2-n比较[x]

补和[-x]

补,发现将[x]

补连同符号位求反,末位加1,即得[-x]

补。

②当-1≤x<0时,设

[x]

补=1.x1x2…

xn则

x

=-(0.x1*x2*…

xn*+2-n

)所以

-x=0.1.x1*x2*…

xn*+2-n故

[x]

补=0.…+2-n比较[x]

补和[-x]

补,发现将[x]

补连同符号位求反,末位加1,即得[-x]

补。(1)设X=-0.1010Y=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.0001X+Y=-0.0101X-Y=-0.1111

加减法运算示例(2)

设X=-0.1011Y=-0.0101求(X+Y)补和(X-Y)补解:(X)补

=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.1010X+Y=-1X-Y=-0.0110

加减法运算示例例练习1设x=y=,用补码求x+y9161116x+y=–0.1100=1216–练习2设机器数字长为8位(含1位符号位)且A=–97,B=+41,用补码求A

BA

–B=+1110110=+118错错主要内容定点补码加减法溢出检测基本加法器溢出判断

由于机器码的位数通常是给定的(如16位字长,32位字长),因此,数的表示范围是有限的,若两数进行加减运算的结果超出给定的取值范围,就会产生溢出。溢出是指运算结果超过了数的表示范围。两个符号相同的数相加,才可能产生溢出;两个符号相异的数相加,不可能产生溢出。例,X=+0.1011,Y=+0.1001,X+Y=?[X]补0.1011+[Y]补0.10011.0100此时,两个正数相加的结果成为负数,显然是错误的。溢出判断又如,X=-0.1101,Y=-0.1011,X+Y=?[X]补1.0011+[Y]补1.01010.1000两个负数相加的结果成为正数,这同样是错误的。为判断溢出是否产生,可以采用三种检测方法。溢出判断1、单符号位操作检测方法:当运算结果的符号位与操作数的符号位不一致时,表示溢出;当加数和被加数符号位不同时,相加的结果绝对不会溢出。例,X=+0.1001,Y=+0.1110,是否溢出?

[X]补0.1001+[Y]补0.11101.0111

运算结果产生溢出。XfYfSfV00111101其它0溢出判断2、进位检测法Cf C0

0 0 正确(正数)

0 1 上溢

1 0 下溢

1 1 正确(负数)V=Cf

⊕C0,其中Cf为符号位产生的进位,C0为最高有效位产生的进位。看高位的进位输入与其进位输出是否一致从真值表可判断当两个单符号位补码进行加减运算时,若最高数值位向符号位的进位值C0与符号位产生的进位输出值Cf相同时,则没有溢出发生。如果两个进位值不同,则有溢出发生。溢出表达式:V=Cf⊕C0。设xf和yf表示两个相加数的符号,C0表示高位的进位信号,Cf表示符号位的进位信号,S表示结果的符号,V为溢出信号

例,X=+0.1011,Y=+0.1101[X]补0.1011+[Y]补0.11011.1000若最高数值位向符号位的进位为1,符号位产生的进位为0,表示有溢出。又如,X=-0.1011,Y=-0.1100[X]补1.0101+[Y]补1.01000.1001若最高数值位向符号位的进位为0,符号位产生的进位为1,表示有溢出。溢出判断3、变形补码检测法(双符号位)方法:每个操作数在运算时都采用两个符号位,正数用00表示,负数用11表示,两个符号位与码值一起参加运算;若运算结果的两个符号位的代码不一致时表示溢出,两个符号位代码一致时,没有溢出。设左边第一位为第一符号位Sf1,相邻的为第二符号位Sf2,则溢出逻辑表达式:

V=Sf1⊕Sf2

若V=0无溢出;V=1有溢出。

溢出判断主要内容定点补码加减法溢出检测基本加法器基本的加法器基本的加法和减法器半加器

Hi=Ai⊕Bi

不考虑进位全加器

考虑低位进位Ci-1和向高位的进位Ci

一位全加器真值表输入输出AiBiCiSiCi+10000000110010100110110010101011100111111基本的加法器基本的加法器-FA逻辑电路和框图FA(全加器)逻辑电路图FA框图图行波进位的补码加法/加法器基本的加法器-n位行波进位加法器基本的加法器-n位行波进位加法器B0A0MB1A1Bn-2An-2Bn-1An-1溢出S0S1Sn-2Sn-1一个“与”门或者一个“或”门的时间延迟为一个T,异或门为3T0时刻3T时刻4T时刻6T时刻6T+2T时刻9T时刻6T+4T时刻6T+2nT时刻6T+2(n-1)T时刻11T时刻6T+2(n-1)T+3T时刻6T+2nT+3T时刻C0C2Cn-1C1Cn并行加法器由知令&A1B1=1A0B0=1A1B1C0&&A0B0&&C2基本的加法器-实现加法的逻辑图①实现加法时应提供以下控制信号:A→ALU,B→ALU,+,ALU→A②实现减法时应提供以下控制信号:A→ALU,B*→ALU,ALU+1,+,ALU→A小结定点补码加减法运算方法,理解减法运算用加法来实现三种溢出检测方法及溢出判断的逻

温馨提示

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

评论

0/150

提交评论