《运算方法与运算部件幻灯片.ppt》由会员分享,可在线阅读,更多相关《运算方法与运算部件幻灯片.ppt(67页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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
26、Bi i+(A+(Ai i B Bi i)C C I I第二节算术逻辑运算部件第二节算术逻辑运算部件ALU第26页,共67页,编辑于2022年,星期三(3)(3)(3)(3)串行加法器和并行加法器串行加法器和并行加法器串行加法器和并行加法器串行加法器和并行加法器全加器只能实现对一位数的加法运算,为了完成对多位数的相加,就全加器只能实现对一位数的加法运算,为了完成对多位数的相加,就要组成加法器。通常有要组成加法器。通常有2 2种形式:种形式:a.a.a.a.串行加法器串行加法器串行加法器串行加法器 只有一位全加器,使用移位寄存器从低位到高位串行的提供操作数只有一位全加器,使用移位寄存器从低位到高
27、位串行的提供操作数相加。每产生一位和需串行的送入结果寄存器中。进位信号由一位相加。每产生一位和需串行的送入结果寄存器中。进位信号由一位触发器保存,参与下一位运算。图见书触发器保存,参与下一位运算。图见书5858页。页。速度较慢,基本不采用。速度较慢,基本不采用。b.b.b.b.并行加法器并行加法器并行加法器并行加法器并行加法器中全加器的位数与操作数的位数相同,可以同时对操作并行加法器中全加器的位数与操作数的位数相同,可以同时对操作数的各位进行相加。数的各位进行相加。由于操作数各位是同时提供的,最低进位逐级影响到最高位。因此由于操作数各位是同时提供的,最低进位逐级影响到最高位。因此它的最长运算时
28、间是由进位信号的传递时间决定,而每位全加器本身的求它的最长运算时间是由进位信号的传递时间决定,而每位全加器本身的求和延迟是次要的,所以提供并行加法器速度的关键是尽量加快进位的产生和延迟是次要的,所以提供并行加法器速度的关键是尽量加快进位的产生和传递。和传递。第二节算术逻辑运算部件第二节算术逻辑运算部件ALU第27页,共67页,编辑于2022年,星期三二、并行加法器进位链二、并行加法器进位链 进位链:并行加法器中传递进位信号的逻辑线路。进位链:并行加法器中传递进位信号的逻辑线路。1.1.1.1.基本进位公式基本进位公式基本进位公式基本进位公式每一位的进位表达式为每一位的进位表达式为 :C C i
29、 i1 1=X=Xi i Y Yi i+(X+(Xi iYYi i)C)C i i 其中其中X Xi i、Y Yi i取决于本位参加运算的两个数,而与低位进位无关,因此称取决于本位参加运算的两个数,而与低位进位无关,因此称X Xi i Y Yi i为进为进位产生函数,用位产生函数,用G G i i表示表示:G:G i i A Ai i B Bi i (A(Ai iBBi i)C)Ci i不但与本位的两个数有关,还依赖于低位的进位,因此称不但与本位的两个数有关,还依赖于低位的进位,因此称A Ai iBBi i为进位为进位传递函数,用传递函数,用P Pi i表示表示 P Pi i A Ai iBB
30、i i其含义为:当两个输入均为其含义为:当两个输入均为1 1,必然要向高位产生进位,必然要向高位产生进位 当两个输入中有一个为当两个输入中有一个为1 1,低位传来的进位,低位传来的进位C Ci-1i-1将超将超 越本位向更高的位传递越本位向更高的位传递 所以有所以有所以有所以有C C i i1 1=G=G i i+P+Pi i GGi i 第二节算术逻辑运算部件第二节算术逻辑运算部件ALU第28页,共67页,编辑于2022年,星期三2.2.2.2.并行加法器的串行进位并行加法器的串行进位并行加法器的串行进位并行加法器的串行进位 如图:书如图:书如图:书如图:书59595959页页页页当操作数为
31、当操作数为当操作数为当操作数为n n n n位长时,需要位长时,需要位长时,需要位长时,需要n n n n位全加器构成加法器如图位全加器构成加法器如图位全加器构成加法器如图位全加器构成加法器如图 3.3.3.3.并行进位并行进位并行进位并行进位(先行进位、同时进位)先行进位、同时进位)先行进位、同时进位)先行进位、同时进位)为了解决并行加法器的运算速度,就必须解决进位传递的问题,方法是让各为了解决并行加法器的运算速度,就必须解决进位传递的问题,方法是让各为了解决并行加法器的运算速度,就必须解决进位传递的问题,方法是让各为了解决并行加法器的运算速度,就必须解决进位传递的问题,方法是让各级进位信号
32、同时形成,而不是串行形成。线路图如图书级进位信号同时形成,而不是串行形成。线路图如图书级进位信号同时形成,而不是串行形成。线路图如图书级进位信号同时形成,而不是串行形成。线路图如图书61616161页。页。页。页。4.4.4.4.组内并行、组间串行的进位链组内并行、组间串行的进位链组内并行、组间串行的进位链组内并行、组间串行的进位链以以以以16161616位加法器为例,将它分为位加法器为例,将它分为位加法器为例,将它分为位加法器为例,将它分为4 4 4 4组,每组组,每组组,每组组,每组4 4 4 4位,各组内采用位,各组内采用位,各组内采用位,各组内采用4 4 4 4位并行位并行位并行位并行
33、进位加法器,组间串行。进位加法器,组间串行。进位加法器,组间串行。进位加法器,组间串行。采用这种结构,尽管进位延迟较纯串行方式缩短很多,但如果需要进一采用这种结构,尽管进位延迟较纯串行方式缩短很多,但如果需要进一采用这种结构,尽管进位延迟较纯串行方式缩短很多,但如果需要进一采用这种结构,尽管进位延迟较纯串行方式缩短很多,但如果需要进一步提高速度,可采用组内并行、组间并行的进位链。步提高速度,可采用组内并行、组间并行的进位链。步提高速度,可采用组内并行、组间并行的进位链。步提高速度,可采用组内并行、组间并行的进位链。5.5.5.5.组内并行、组间并行的进位链组内并行、组间并行的进位链组内并行、组
34、间并行的进位链组内并行、组间并行的进位链组间也采用并行进位,此结构相当于将加法器分为两级,组间也采用并行进位,此结构相当于将加法器分为两级,组间也采用并行进位,此结构相当于将加法器分为两级,组间也采用并行进位,此结构相当于将加法器分为两级,4 4 4 4个小组的组内进位个小组的组内进位个小组的组内进位个小组的组内进位链为链为链为链为0 0 0 0级,组间进位链为级,组间进位链为级,组间进位链为级,组间进位链为1 1 1 1级级级级第二节算术逻辑运算部件第二节算术逻辑运算部件ALU第29页,共67页,编辑于2022年,星期三三、三、ALUALU举例举例 ALUALU能完成多种算术和逻辑运算。为了
35、简化结构,能完成多种算术和逻辑运算。为了简化结构,ALUALU在加在加法器的基础上扩展其他运算功能。法器的基础上扩展其他运算功能。以一个以一个4 4位片位片ALU SN74181ALU SN74181为例:为例:1.SN741811.SN74181外特性外特性第二节算术逻辑运算部件第二节算术逻辑运算部件ALU第30页,共67页,编辑于2022年,星期三2.2.SN74181SN74181内部特性(详见书内部特性(详见书6363页表页表3 31)1)当选择当选择M M1 1时,时,ALUALU执行逻辑运算执行逻辑运算当选择当选择M M0 0时,时,ALUALU执行算术运算执行算术运算 第二节算术
36、逻辑运算部件第二节算术逻辑运算部件ALU第31页,共67页,编辑于2022年,星期三3.SN741813.SN74181功能表功能表列出了这种列出了这种ALUALU可以完成的可以完成的1616种不同的算术或逻辑运算操作。种不同的算术或逻辑运算操作。例题:例题:P64P64页页 表表3 32 24.4.用用SN74181SN74181构成多位的构成多位的ALUALU每片每片7418174181可作为一个可作为一个4 4位的小组,组间可以采用串行进位也可采用并行进位。位的小组,组间可以采用串行进位也可采用并行进位。书书6565页图页图3 38 8既是一个既是一个1616位并行进位位并行进位ALUA
37、LU结构。结构。下课下课下课下课第二节算术逻辑运算部件第二节算术逻辑运算部件ALUALU第32页,共67页,编辑于2022年,星期三第三节第三节 定点乘法运算定点乘法运算在计算机中实现乘除法运算,有三种方式:(1)软件实现:在低档微机中无乘除指令,只能 用乘法或除法子程序实现。(2)在原有实现加减运算的ALU的基础上增加一些逻辑线路以实现乘除运算。(3)设置专用的乘除法器:主要用于要求快速乘除运算的机器中。一、无符号数一位乘一、无符号数一位乘一、无符号数一位乘一、无符号数一位乘第33页,共67页,编辑于2022年,星期三手工乘法:设手工乘法:设 X=0.1101 Y=0.1011 X=0.11
38、01 Y=0.1011 求求XY=?XY=?0.1 1 0 10.1 1 0 1 0.1 0 1 1 0.1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 1 0.1 0 0 0 1 1 1 1 0.1 0 0 0 1 1 1 1 XY=+0.1 0 0 0 1 1 1 1 0.1 0 0 0 1 1 1 1 如果在计算机中实现乘法计算,要解决:如果在计算机中实现乘法计算,要解决:1.1.局限于加法器的两个输入端。局限于加法器的两个输入端。2.2.结合移位,结合移位,N N位加法器可实现位加法器可实现2
39、2个个N N数相乘。数相乘。3.3.完成运算后,寄存器中保存乘积的高位部分,乘数寄存器中保存乘积的低位部完成运算后,寄存器中保存乘积的高位部分,乘数寄存器中保存乘积的低位部分。分。第34页,共67页,编辑于2022年,星期三第三节 定点乘法运算 由于计算机的局限性,多位数的乘法要执行多次加法而且要浪费大量由于计算机的局限性,多位数的乘法要执行多次加法而且要浪费大量的器件,因此在计算机中乘法运算采用的方法是:的器件,因此在计算机中乘法运算采用的方法是:将将n n位乘转换成位乘转换成n n次次“累加与移位累加与移位”,也就是每一步只求一位乘数所对应,也就是每一步只求一位乘数所对应的新部分积,并与原
40、部分积作一次累加,然后右移一次。的新部分积,并与原部分积作一次累加,然后右移一次。计算机内实现原码一位乘:计算机内实现原码一位乘:计算机内实现原码一位乘:计算机内实现原码一位乘:无符号数一位乘的算法流程框图为下图:无符号数一位乘的算法流程框图为下图:其中:图中使用了三个寄存器其中:图中使用了三个寄存器A A、B B和和C C B B用来存放被乘数,用来存放被乘数,C C存放乘数。存放乘数。A A初值为初值为0 0,然后存放部分积,最后存放乘积高位,然后存放部分积,最后存放乘积高位 第35页,共67页,编辑于2022年,星期三第三节 定点乘法运算 开始N位被乘数BN位乘数C,0 A C0=1?A
41、+B A+B AA+0 A+0 AA A、C C右移一位右移一位重复重复n 次次结束结束Y Y N N N N Y Y 第36页,共67页,编辑于2022年,星期三 设设 X=1101 Y=1011 X=1101 Y=1011 求求XY=?XY=?B(B(被乘数)被乘数)C C0 0 A C(A C(乘数)乘数)C C0 0 A C(A C(乘数)乘数)0 0 0 0 0 1 0 1 1 0 0 0 0 0 1 0 1 1 C C0 0 0 0 B 1 1 0 1B 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 1 0 1 1 0 1 0 0 1 1 0 1 1 0 1
42、C C0 0 1 1 B 1 1 0 1 B 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 0 0 1 1 1 1 0 C C0 0 0 0 0 0 0 0 00 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 1 1 1 0 0 1 0 0 1 1 1 1 C C0 0 1 1 B 1 1 0 1 B 1 1 0 1 1 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 0 0 1 1 1 11 1 0 11 1 0 10 0 0 00 0 0 00 01 0 1 11 0
43、 1 1初始状初始状态态第一第一节拍节拍第二第二节拍节拍第三第三节拍节拍第四第四节拍节拍11011011110110111000111110001111第37页,共67页,编辑于2022年,星期三第三节 定点乘法运算1.硬件实现无符号数一位乘2.软件实现无符号数一位乘可用子程序实现乘法运算。算法仍然是将乘法化为多次累加和移位二、带符号数一位乘 定点原码一位乘的方法和无符号数的方法一样。实现方法是将符号位与数值位分别处理 一般带符号数的运算用补码比较方便,可以先讨论论补码一位乘的算法。第38页,共67页,编辑于2022年,星期三第三节 定点乘法运算1.校正法校正法设设XX补补=X=X0 0X X
44、1 1X X2 2 X Xn n,YY补补=Y=Y0 0Y Y1 1Y Y2 2 Y Yn n(1 1)当)当Y0Y0,即,即Y Y0 0=0=0时,时,X X补补YY补补=X=X补补Y=XYY=XY补补(2 2)当)当Y0Y0,即,即Y Y0 0=1=1时,时,则则 Y Y补补=2+Y,Y=Y=2+Y,Y=Y补补-2=1-2=1Y Y1 1Y Y2 2 Y Yn n 2 2 =0 =0Y Y1 1Y Y2 2 Y Yn n-1-1 XY=X(0 XY=X(0Y Y1 1Y Y2 2 Y Yn n)X X 则则 XY XY补补=X=X补补(0(0Y Y1 1Y Y2 2 Y Yn n)+-X)
45、+-X补补第39页,共67页,编辑于2022年,星期三校正法定点补码一位乘的规律(1 1)乘数)乘数Y Y的符号位不参加运算,用的符号位不参加运算,用XX补补 乘上乘上YY补补的的数值位。数值位。(2 2)若)若Y Y为负数,则对求得的积再做一次加为负数,则对求得的积再做一次加-X-X补补的校正。的校正。(3 3)结果的符号由运算结果得出。)结果的符号由运算结果得出。第40页,共67页,编辑于2022年,星期三例例1 X=-0.1101,Y=+0.1011,1 X=-0.1101,Y=+0.1011,求求XY=XY=?XX补补=11.0011=11.0011,YY补补=0.1011=0.101
46、1 高位部分积高位部分积 低位部分积低位部分积/乘数乘数 操作说明操作说明 0 0.0 0 0 0 1 0 1 10 0.0 0 0 0 1 0 1 1 开始部分积为开始部分积为0,0,判断乘数末位判断乘数末位+)+)1 1.0 0 1 11 1.0 0 1 1 乘数最低位为乘数最低位为1 1,+X+X补补 1 1.0 0 1 11 1.0 0 1 1 1 1.1 0 0 1 1 1 0 1 11 1.1 0 0 1 1 1 0 1 1(丢掉)右移部分积和乘数,判末位(丢掉)右移部分积和乘数,判末位+)+)1 1.0 0 1 1 1 1.0 0 1 1 乘数最低位为乘数最低位为1 1,+X+X
47、补补 1 0.1 1 0 0 1 0.1 1 0 0 1 1.0 1 1 0 0 1 1 0 11 1.0 1 1 0 0 1 1 0 1 (丢掉)(丢掉)右移部分积和乘数,右移部分积和乘数,+)+)0 0.0 0 0 00 0.0 0 0 0 乘数最低位为乘数最低位为0 0,+0+0 1 1.0 1 1 01 1.0 1 1 0 1 1.1 0 1 1 0 0 1 1 01 1.1 0 1 1 0 0 1 1 0 (丢掉)(丢掉)右移部分积和乘数,计数右移部分积和乘数,计数+)+)1 1.0 0 1 11 1.0 0 1 1 乘数最低位为乘数最低位为1 1,+X+X补补 1 0.1 1 1
48、0 1 0.1 1 1 0 1 1.0 1 1 1 0 0 0 1 11 1.0 1 1 1 0 0 0 1 1 (丢掉)(丢掉)右移部分积和乘数,计数右移部分积和乘数,计数X*YX*Y补补=1 1.0 1 1 1 0 0 0 1,XY=-0.1 0 0 0 1 1 1 1=1 1.0 1 1 1 0 0 0 1,XY=-0.1 0 0 0 1 1 1 1第41页,共67页,编辑于2022年,星期三例例2 X=-0.1101,Y=-0.1011,求求XYXY=?XX补补=11.0011=11.0011,YY补补=11.0101=11.0101,-X-X补补=00.1101=00.1101 高位
49、部分积高位部分积 低位部分积低位部分积/乘数乘数 操作说明操作说明 0 0.0 0 0 0 0 1 0 1 0 1 开始部分积为开始部分积为0,0,判末位判末位+)1 1.0 0 1 1 乘数最低位为乘数最低位为1,+XX补补 1 1.0 0 1 1 1 1.1 0 0 1 1 0 1 0 1(丢掉)(丢掉)右移部分积和乘数,右移部分积和乘数,+)0 0.0 0 0 0 乘数最低位为乘数最低位为0,+0 1 1.1 0 0 1 1 1.1 1 0 0 1 1 0 1 0(丢掉)(丢掉)右移部分积和乘数右移部分积和乘数,+)1 1.0 0 1 1 乘数最低位为乘数最低位为1,+XX补补 1 0.
50、1 1 1 1 1 1.0 1 1 1 1 1 1 0 1(丢掉)(丢掉)右移部分积和乘数,右移部分积和乘数,+)0 0.0 0 0 0 乘数最低位为乘数最低位为0,+0 1 1.0 1 1 1 1 1.1 0 1 1 1 1 1 1 0(丢掉)(丢掉)右移部分积和乘数右移部分积和乘数,XYXY=1 1.1 0 1 1 1 1 1 1 第42页,共67页,编辑于2022年,星期三Y为负数,对求得的积需再做一次加为负数,对求得的积需再做一次加-X-X补补的的 校正。校正。-X-X补补=00.1101=00.1101X+YX+Y补补=1 1.1 0 1 1 1 1 1 1+0 0.1 1 0 1