运算方法与运算部件幻灯片.ppt
《运算方法与运算部件幻灯片.ppt》由会员分享,可在线阅读,更多相关《运算方法与运算部件幻灯片.ppt(67页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、运算方法与运算部件第1页,共67页,编辑于2022年,星期三一、定点加减运算(补码运算)二、溢出判别三、移位四、十进制运算五、逻辑运算(简介)第一节 算术逻辑运算基础第2页,共67页,编辑于2022年,星期三1.定点加减运算定点加减运算一、补码加减运算一、补码加减运算计算机中,常用补码进行加减运算。计算机中,常用补码进行加减运算。补码可将减法变加法进行运算。补码可将减法变加法进行运算。补码运算特点:符号位与数值位一同运算。补码运算特点:符号位与数值位一同运算。运算的基本规则:运算的基本规则:XXXX补补补补+Y+Y补补=X+Y=X+Y=X+Y=X+Y补补补补 X-Y X-Y X-Y X-Y补补
2、=X=X=X=X补补-Y-Y-Y-Y补补补补=X=X=X=X补补补补+-Y+-Y+-Y+-Y补补补补 由由YYYY补补补补求得求得-Y-Y-Y-Y补补补补 。其方法是:对其方法是:对YYYY补补补补包含符号位各位求反,末位加包含符号位各位求反,末位加1。第3页,共67页,编辑于2022年,星期三 1.XX补补+Y+Y补补=2=2 X X0 0+X+2+X+2 Y Y0 0+Y=2(X+Y=2(X0 0+Y+Y0 0)+(X+Y)+(X+Y)(1 1)若)若X X0 0Y Y0 0=00=00,则,则 XXXX补补补补+Y+Y+Y+Y补补补补 =X+YX+Y=X+Y X+Y X+Y X+Y补补补
3、补;(2 2)若)若X X0 0Y Y0 0=01=01或或1010,则,则 XXXX补补补补+Y+Y+Y+Y补补补补=2+2+(X+YX+Y)当当X+Y0X+Y0时,时,2+2+(X+YX+Y)22,进位丢失,得:,进位丢失,得:XXXX补补补补+Y+Y+Y+Y补补补补 =X+YX+Y=X+Y X+Y X+Y X+Y补补补补;当当X+Y0X+Y X+Y 0 X+Y -1,2 2+(X+Y)-1,2 2+(X+Y)1 1此时,此时,此时,此时,XXXX补补补补+Y+Y+Y+Y补补补补=2+(X+Y)2+(X+Y)=X+Y X+Y X+Y X+Y补补补补(2 2自然丢失)自然丢失)在模在模在模在
4、模2 2 2 2下下下下,设设XX补补=X=X0 0X X1 1X X2 2 X Xn n,YY补补=Y=Y0 0Y Y1 1Y Y2 2 Y Yn n 则则XX补补=2=2 X X0 0+X+X,Y Y补补=2=2 Y Y0 0+Y+Y证明证明:第4页,共67页,编辑于2022年,星期三2、XX补补+Y+Y补补=X+YX+Y补补补补 Y Y补补=X+YX+YX+YX+Y补补补补-X-X-X-X补补补补 又又X-YX-Y补补=X+(-Y)=X+(-Y)补补=X=X补补+-Y+-Y补补 -Y -Y补补=X-YX-Y补补补补-X-X-X-X补补补补 +得:得:得:得:YY补补+-Y+-Y补补=X+
5、YX+YX+YX+Y补补补补-X-X补补补补 +X-YX-YX-YX-Y补补补补-X-X-X-X补补补补 =X+Y+X-YX+Y+X-Y补补补补-X-X补补补补-X-X-X-X补补补补=X+XX+X补补补补-X-X补补-X-X-X-X补补补补=0=0 -Y-Y补补=-Y=-Y补补 即即 X-YX-Y补补=X=X补补+-Y+-Y补补=X=X补补-Y-Y补补 第5页,共67页,编辑于2022年,星期三例例1:已知机器字长已知机器字长 n=8,X=44,Y=53 求:求:X+Y=?解:解:XX原原=00101100=00101100,YY原原=00110101=00110101 X X补补=0010
6、1100=00101100,YY补补=00110101=00110101结果:结果:X+Y=(+1100001)X+Y=(+1100001)2 2=+97=+97X补 =0 0 1 0 1 1 0 0+Y补 =0 0 1 1 0 1 0 1X+Y补=0 1 1 0 0 0 0 1第6页,共67页,编辑于2022年,星期三 超出超出8位,模值舍弃。位,模值舍弃。结果:结果:X+Y=(-1100001)2=-97X补 =1 1 0 1 0 1 0 0+Y补 =1 1 0 0 1 0 1 1 X+Y补 =11 0 0 1 1 1 1 1 例2:已知机器字长 n=8,X=-44,Y=-53,求:X+Y
7、=?解解:44补=00101100,53补=00110101X补=-44补=11010011+1=11010100,Y补=-53补=11001010+1=11001011第7页,共67页,编辑于2022年,星期三 模值舍弃模值舍弃结果:X-Y补=(0.0111000)2,X-Y=(+0.0111)2 X补 =0.1 1 0 1 0 0 0 +-Y补 =1.1 0 1 0 0 0 0 1 0.0 1 1 1 0 0 0 例3:已知机器字长 n=8,X=0.1101,Y=0.0110 求:X-Y=?解:XX补补=0.1101000=0.1101000,YY补补=0.0110000=0.011000
8、0,-Y -Y补补=1.1010000=1.1010000 第8页,共67页,编辑于2022年,星期三X补补=1.0 0 1 1 0 0 0+-Y补补=0.0 1 1 0 0 0 01.1 0 0 1 0 0 0 例4:已知机器字长 n=8,X=-0.1101,Y=-0.0110求:X-Y=?解:X补补=1.0011000,Y补补=1.1010000 -Y补补=0.0110000 结果:X-Y补补 =(1.1001000)2 X-Y=(-0.0111)2第9页,共67页,编辑于2022年,星期三2.溢出的检测溢出:运算结果超出了计算机所能表示的数据范围。溢出:运算结果超出了计算机所能表示的数据
9、范围。正正溢溢(上溢上溢):运算结果为正而绝对值超出了表示的):运算结果为正而绝对值超出了表示的范围。范围。负溢负溢(下溢下溢):运算结果为负而绝对值超出了表):运算结果为负而绝对值超出了表示的范围。示的范围。定点数的溢出定点数的溢出根据数值本身判断。根据数值本身判断。第10页,共67页,编辑于2022年,星期三例:已知机器字长n=8,X=120,Y=10,求:X+Y=?解:X补=01111000,Y补=00001010,X补=0 1 1 1 1 0 0 0 +Y补=0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 X+Y补=10000010,X+Y=11111110X+Y的真值
10、=-1111110=(-126)10运算结果超出机器数值范围发生溢出错误。运算结果超出机器数值范围发生溢出错误。运算结果超出机器数值范围发生溢出错误。运算结果超出机器数值范围发生溢出错误。8 8位计算机数值表达范围:位计算机数值表达范围:位计算机数值表达范围:位计算机数值表达范围:(-128+127)(-128+127)第11页,共67页,编辑于2022年,星期三二、溢出判断规则与判断方法二、溢出判断规则与判断方法两个相同符号数相加,其运算结果符号与两个相同符号数相加,其运算结果符号与被加数相反则产生溢出;被加数相反则产生溢出;两个相异符号数相减,其运算结果符号与两个相异符号数相减,其运算结果
11、符号与被减数相反则产生溢出。被减数相反则产生溢出。相同符号数相减,相异符号数相加不会产相同符号数相减,相异符号数相加不会产生溢出。生溢出。溢出判断方法:进位判断法,双符号位法。溢出判断方法:进位判断法,双符号位法。第12页,共67页,编辑于2022年,星期三(1)进位溢出判断法进位溢出判断法 SC 两单符号位的补码进行加减运算时,若最高数两单符号位的补码进行加减运算时,若最高数值位向符号位的进位值值位向符号位的进位值C与符号位产生的进位输出值与符号位产生的进位输出值S相同时则无溢出,否则溢出。相同时则无溢出,否则溢出。例:例:X补补=1.101 X补补=1.110 +Y补补=1.001 +Y补
12、补=0.100 X+Y补补=10.110 X+Y补补=10.010 C=0,S=1 有溢出有溢出 C=1,S=1 无溢出无溢出 X+Y=+0.010结论:结论:OVR=S C=0(无溢出)(无溢出)OVR=S C =1(有溢出)(有溢出)其中:其中:S C=01 正溢;正溢;S C=10 负溢负溢第13页,共67页,编辑于2022年,星期三(2)双符号位(变形补码)溢出判断法双符号位(变形补码)溢出判断法设第一符号位设第一符号位Sf1,第二符号位第二符号位Sf2,Sf1 Sf2双符号含义:双符号含义:0 0 表示运算结果为正数;表示运算结果为正数;0 1 表示运算结果正向溢出;表示运算结果正向
13、溢出;1 0 表示运算结果负向溢出;表示运算结果负向溢出;1 1 表示运算结果为负数。表示运算结果为负数。结论:结论:OVR=Sf1 Sf2=0 无溢出无溢出OVR=Sf1 Sf2 =1 有溢出有溢出运算结果的真正符号位是左边第一位:运算结果的真正符号位是左边第一位:Sf1。第14页,共67页,编辑于2022年,星期三例1:X=0.1001,Y=0.0101,求求:X+Y=?解:X补补=00.1001 +Y补补=00.0101 X+Y补补=00.1110双符号位相同,运算结果正确,无溢出。双符号位相同,运算结果正确,无溢出。X+Y=+0.1110第15页,共67页,编辑于2022年,星期三解:
14、X补补=11.0111+Y补补=11.1011 X+Y补补=111.0010 模值舍弃 双符号位相同,运算结果正确,无溢出。双符号位相同,运算结果正确,无溢出。X+Y=-0.1110 例2:X=-0.1001,Y=-0.0101,求:X+Y=?第16页,共67页,编辑于2022年,星期三例3:X=0.1011,Y=0.0111,求 X+Y补=?解:X补=00.1011 +Y补=00.0111 X+Y补=01.0010双符号位为双符号位为01,运算结果不正确,正向溢出,运算结果不正确,正向溢出。第17页,共67页,编辑于2022年,星期三解:X补补=11.0100+1=11.0101 Y补补=0
15、0.0111 -Y补=11.1001 X补补=11.0101+-Y补补=11.1001 X+Y补补=1 10.1110双符号位为双符号位为10,运算结果不正确,负向溢出。,运算结果不正确,负向溢出。例4:X=-0.1011,Y=0.0111,求:X-Y补=?模值舍弃第18页,共67页,编辑于2022年,星期三三、补码加减法运算规则如下:三、补码加减法运算规则如下:1.1.参加运算的操作数用补码表示。参加运算的操作数用补码表示。2.2.符号位与数值位一样参加运算。符号位与数值位一样参加运算。3.3.如果是加法运算,则直接相加如果是加法运算,则直接相加如果是减法,那么减数连同符号如果是减法,那么减
16、数连同符号位一起取反,然后末位加位一起取反,然后末位加1 1。4.4.运算的结果仍然是补码形式。运算的结果仍然是补码形式。第19页,共67页,编辑于2022年,星期三四、移位操作四、移位操作移位操作是实现算数和逻辑运算不可缺少的基本移位操作是实现算数和逻辑运算不可缺少的基本操作,操作,分为算术移位、逻辑移位和循环移位。分为算术移位、逻辑移位和循环移位。移位操作移位操作可以实现对操作数的左移或右移一位或若干可以实现对操作数的左移或右移一位或若干可以实现对操作数的左移或右移一位或若干可以实现对操作数的左移或右移一位或若干位。位。位。位。移位的过程如下:移位的过程如下:移位的过程如下:移位的过程如下
17、:第20页,共67页,编辑于2022年,星期三补码补码补码补码左移左移左移左移 1 1、算术移位:指带符号数的移位,移位后符号不变。、算术移位:指带符号数的移位,移位后符号不变。、算术移位:指带符号数的移位,移位后符号不变。、算术移位:指带符号数的移位,移位后符号不变。1 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0左移左移左移左移时,各位依次左移,最高有效位左移到符号时,各位依次左移,最高有效位左移到符号位,末位补位,末位补0。在补码左移时如果不发生溢出,那。在补码左移时如果不发生溢出,那么对于最高有效位无论是么对于最高有效位无论是0或或1,左移至符号位使,左移至符号位使它仍保
18、持不变,如果有溢出,那么对于单符号位它仍保持不变,如果有溢出,那么对于单符号位补码将会破坏正确的符号。补码将会破坏正确的符号。补码补码补码补码右移右移右移右移 1 1 0 1 0 0 1 0 1 1 1 0 1 0 0 1右移右移右移右移时连同符号位一起,各位依次右移,符号位时连同符号位一起,各位依次右移,符号位的值右移至最高有效位,而符号位本身不变。的值右移至最高有效位,而符号位本身不变。移掉移掉移掉移掉移掉移掉移掉移掉第21页,共67页,编辑于2022年,星期三原码:不论正数负数,移位操作都相同。原码:不论正数负数,移位操作都相同。左移:左移:符号位保持不变,各位依次左移,末位补符号位保持
19、不变,各位依次左移,末位补0。右移:右移:符号位保持不变,最高有效位补符号位保持不变,最高有效位补0,末位丢弃。,末位丢弃。注意:左移时如果最高有效位已经是注意:左移时如果最高有效位已经是1,左移后将发生溢出。,左移后将发生溢出。原码原码原码原码移位移位移位移位 1 0 1 0 1 1 0 1 1 1 0 1 1 0 1 0移掉移掉移掉移掉补补补补0 02 2、逻辑移位:左移低位补、逻辑移位:左移低位补、逻辑移位:左移低位补、逻辑移位:左移低位补0 0、右移高位补、右移高位补、右移高位补、右移高位补0 0。逻辑逻辑逻辑逻辑右移右移右移右移 0 1 1 0 1 0 1 1 0 0 1 1 0 1
20、 0 1移掉移掉移掉移掉补补补补0 0第22页,共67页,编辑于2022年,星期三在程序中,常用算术逻辑移位指令实现简单的乘除运算。在程序中,常用算术逻辑移位指令实现简单的乘除运算。算术左移或右移算术左移或右移n位,分别实现对带符号数乘以位,分别实现对带符号数乘以2n或除以或除以2n 逻辑左移或右移逻辑左移或右移n位,分别实现对无符号数乘以位,分别实现对无符号数乘以2n或除以或除以2n3 3、循环移位:左移时最高位移到最低位。、循环移位:左移时最高位移到最低位。、循环移位:左移时最高位移到最低位。、循环移位:左移时最高位移到最低位。右移时最低位移到最高位。右移时最低位移到最高位。右移时最低位移
21、到最高位。右移时最低位移到最高位。常用于:常用于:实现循环控制、高低字节互换或与算术逻辑移位指令实现循环控制、高低字节互换或与算术逻辑移位指令一起实现双倍字长或多倍字长的移位。一起实现双倍字长或多倍字长的移位。循环循环循环循环右移右移右移右移 0 1 1 0 1 0 1 1 1 0 1 1 0 1 0 1补补补补0 0第23页,共67页,编辑于2022年,星期三第二节算术逻辑运算部件第二节算术逻辑运算部件ALUALUALU部件主要用来完成对二进制数的定点算术运算和逻辑部件主要用来完成对二进制数的定点算术运算和逻辑部件主要用来完成对二进制数的定点算术运算和逻辑部件主要用来完成对二进制数的定点算术
22、运算和逻辑运算。算术运算主要包括加法和减法运算。逻辑运算主要运算。算术运算主要包括加法和减法运算。逻辑运算主要运算。算术运算主要包括加法和减法运算。逻辑运算主要运算。算术运算主要包括加法和减法运算。逻辑运算主要指与、或、非、异或等运算。指与、或、非、异或等运算。指与、或、非、异或等运算。指与、或、非、异或等运算。加法又是各种运算的基础,因此加法又是各种运算的基础,因此加法又是各种运算的基础,因此加法又是各种运算的基础,因此ALUALU的核心是加法器。的核心是加法器。的核心是加法器。的核心是加法器。一、加法单元一、加法单元通常采用全加器。全加器有三个输入量:通常采用全加器。全加器有三个输入量:A
23、 A操作数的第操作数的第i i位位A Ai iB B操作数的第操作数的第i i位位B Bi i 低位送来的进位低位送来的进位C Ci i两个输出量:全加和两个输出量:全加和I I 和向高位的进位和向高位的进位C Ci+1i+1全加器的框图及功能表如下:全加器的框图及功能表如下:第24页,共67页,编辑于2022年,星期三CiCi+1FIXiYi全加器的逻辑图全加器的逻辑图 输入输出Xi Yi C i FI C i+10 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 10 01 01 00 11 00 10 11 1全加器功能表全加器功能表 第二节算术逻辑运算部件第二
24、节算术逻辑运算部件ALU第25页,共67页,编辑于2022年,星期三(1)(1)(1)(1)用与非门构成的全加器用与非门构成的全加器用与非门构成的全加器用与非门构成的全加器 根据功能表可以写出根据功能表可以写出 I I 和和 C Ci+1 i+1 的逻辑表达式:的逻辑表达式:F FI IX Xi i Y Yi i C C i i X Xi i Y Yi i C C i i X Xi i Y Yi i C C i i X Xi i Y Yi i C C i i C Ci+1i+1X Xi i Y Yi i C C i i X Xi i Y Yi i C C I I X Xi i Y Yi i C
25、 C I I X Xi i Y Yi i C C I I 化简表达式,可得到相应的全加器的表达式如书化简表达式,可得到相应的全加器的表达式如书5757页页(2)(2)(2)(2)用半加器构成的全加器用半加器构成的全加器用半加器构成的全加器用半加器构成的全加器 不考虑进位输入,两数码相加称为半加。不考虑进位输入,两数码相加称为半加。半加求和可用异或门实现,所以也称异或门为半加器。半加求和可用异或门实现,所以也称异或门为半加器。显然,全加可用两次半加实现,逻辑式如下:显然,全加可用两次半加实现,逻辑式如下:I I A Ai i B Bi i C C I I C Ci+1 i+1 A Ai i B
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运算 方法 部件 幻灯片
限制150内