运算方法和运算器.ppt
《运算方法和运算器.ppt》由会员分享,可在线阅读,更多相关《运算方法和运算器.ppt(73页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、关于运算方法和运算器关于运算方法和运算器现在学习的是第1页,共73页本章需解决的关键问题:本章需解决的关键问题:如何以加法器为基础,实现各种运算处理。如何以加法器为基础,实现各种运算处理。解决思路:解决思路:复杂运算复杂运算 四则运算四则运算 加法运算加法运算解决方法:解决方法:在加法器的基础上,增加移位传送功能,并选择在加法器的基础上,增加移位传送功能,并选择输入控制条件。输入控制条件。第第3章章 运算方法和运算器运算方法和运算器现在学习的是第2页,共73页 第一节第一节 定点加减运算定点加减运算3.1.1 补码加减法补码加减法数用补码表示,符号位参加运算。数用补码表示,符号位参加运算。实际
2、操作能否只取决于操作码实际操作能否只取决于操作码?结果需不需修正?结果需不需修正?如何将减法转换为加法?如何将减法转换为加法?现在学习的是第3页,共73页1.基本关系式基本关系式(X+Y)补补 =X补补 +Y补补 (1)(X-Y)补补 =X补补 +(-Y)补补 (2)式(式(1):):操作码为操作码为“加加”时,两数直接相加。时,两数直接相加。3)X=3 Y=2 X补补=0 0011 Y补补=1 11100 0001(+1补码)补码)2)X=3 Y=2 X补补=1 1101 Y补补=1 11101 1011(5补码)补码)1)X=3 Y=2 X补补=0 0011 Y补补=0 00100 010
3、1(+5补码)补码)4)X=3 Y=2 X补补=1 1101 Y补补=0 00101 1111(1补码)补码)例例.求求(X+Y)补补现在学习的是第4页,共73页(X+Y)补补 =X补补 +Y补补 (1)(X-Y)补补 =X补补 +(-Y)补补 (2)式(式(2):):操作码为操作码为“减减”时,将减转换为加。时,将减转换为加。1)X=4 Y=5 X补补=0 0100 Y补补=1 1011(-Y)补补=0 01010 1001(+9补码)补码)2)X=4 Y=5 X补补=1 1100 Y补补=0 0101(-Y)补补=1 10111 0111(9补码)补码)例例.求求(X Y)补补Y补补 (Y
4、)补补:将将Y Y补补变补变补不管不管Y Y补补为正或负,将其符号连同尾数为正或负,将其符号连同尾数一起各位变反,末位加一起各位变反,末位加1 1。即将减数变补后与被减数相加。即将减数变补后与被减数相加。X补补=0 0100 Y补补=1 1011 X补补=1 1100 Y补补=0 0101现在学习的是第5页,共73页注意:某数的注意:某数的补码表示补码表示与某数与某数变补变补的区别。的区别。例例.1 0101.1 0101原原 1 10111 1011补码表示补码表示1 00111 0011补补 0 11010 1101变补变补 0 0101 0 0101原原 0 01010 0101补码表示
5、补码表示符号位不变;符号位不变;负数尾数改变,负数尾数改变,正数尾数不变。正数尾数不变。0 00110 0011补补 1 11011 1101变补变补符号位改变,符号位改变,尾数改变。尾数改变。补码的机器负数补码的机器负数运算规则补充:符号位的进位是模,作为溢出量,应该丢运算规则补充:符号位的进位是模,作为溢出量,应该丢掉。掉。现在学习的是第6页,共73页2.算法流程算法流程操作数用补码表示,操作数用补码表示,符号位参加运算符号位参加运算结果为补码表示,符结果为补码表示,符号位指示结果正负号位指示结果正负X补补+Y补补X补补+(-Y)补补ADDSUB现在学习的是第7页,共73页3.逻辑实现逻辑
6、实现A(X补补)B(Y补补)+AABB+B+B+1CPA A(1)控制信号控制信号加法器输入端:加法器输入端:+A+A:打开控制门,将:打开控制门,将A A送送。+B+B:打开控制门,将:打开控制门,将B B送送。+1+1:控制末位加:控制末位加 1 1。+B+B:打开控制门,将:打开控制门,将B B送送。加法器输出端:加法器输出端:A:打开控制门,将结打开控制门,将结 果送果送A输入端。输入端。CPCPA A:将结果打入:将结果打入A A。(2)补码加减运算器粗框补码加减运算器粗框现在学习的是第8页,共73页3.1.2 溢出判断溢出判断在什么情况下可能产生溢出?在什么情况下可能产生溢出?例例
7、.数数A A有有4 4位尾数,位尾数,1 1位符号位符号S SA A 数数B B有有4 4位尾数,位尾数,1 1位符号位符号S SB B 符号位参加符号位参加运算运算 结果符号结果符号S Sf f符号位进位符号位进位C Cf f尾数最高位进位尾数最高位进位C C现在学习的是第9页,共73页正确正确0 00110 0010(1)A=3 B=2 3+2:0 0101 (2)A=10 B=7 10+7:0 10100 01111 0001 正溢正溢正确正确负溢负溢正确正确正确正确(3)A=-3 B=-2-3+(-2):1 1011 1 11011 1110(4)A=-10 B=-7 -10+(-7)
8、:0 1111 1 01101 1001(5)A=6 B=-4 6+(-4):0 0010 0 01101 1100(6)A=-6 B=4 -6+4:1 1110 1 10100 0100现在学习的是第10页,共73页(2)A=10 B=7 10+7:0 1010 0 01111 0001 (4)A=-10 B=-7 -10+(-7):0 1111 1 01101 10011.硬件判断逻辑一硬件判断逻辑一(SA、SB与与Sf的关系)的关系)溢出溢出=S SA AS SB BS Sf fS SA AS Sf fS SB B2.硬件判断逻辑二硬件判断逻辑二(Cf与与C的关系)的关系)现在学习的是第
9、11页,共73页正确正确0 00110 0010(1)A=3 B=2 3+2:0 0101 (2)A=10 B=7 10+7:0 10100 01111 0001 正溢正溢正确正确负溢负溢正确正确正确正确(3)A=-3 B=-2-3+(-2):1 1011 1 11011 1110(4)A=-10 B=-7 -10+(-7):0 1111 1 01101 1001(5)A=6 B=-4 6+(-4):0 0010 0 01101 1100(6)A=-6 B=4 -6+4:1 1110 1 10100 0100Cf=0Cf=0C=0C=0Cf=0Cf=0C=1C=1Cf=1Cf=1C=1C=1C
10、f=1Cf=1C=0C=0Cf=1Cf=1C=1C=1Cf=0Cf=0C=0C=0111111现在学习的是第12页,共73页(2)A=10 B=7 10+7:0 1010 0 01111 0001 (4)A=-10 B=-7 -10+(-7):0 1111 1 01101 10011.硬件判断逻辑一硬件判断逻辑一(SA、SB与与Sf的关系)的关系)溢出溢出=S SA AS SB BS Sf fS SA AS Sf fS SB B2.硬件判断逻辑二硬件判断逻辑二(Cf与与C的关系)的关系)溢出溢出=C=Cf f C C3.硬件判断逻辑三硬件判断逻辑三(双符号位(双符号位)现在学习的是第13页,共
11、73页(1)3+2:正确正确00 001100 001000 0101 (2)10+7:00 101000 011101 0001 正溢正溢正确正确负溢负溢正确正确正确正确(3)-3+(-2):11 1011 11 110111 1110(4)-10+(-7):10 1111 11 011011 1001(5)6+(-4):00 0010 00 011011 1100(6)-6+4:11 1110 11 101000 0100第一符号位第一符号位Sf1第二符号位第二符号位Sf2现在学习的是第14页,共73页溢出溢出=S=Sf1f1 S Sf2f2(2)A=10 B=7 10+7:0 1010
12、0 01111 0001 (4)A=-10 B=-7 -10+(-7):0 1111 1 01101 10011.硬件判断逻辑一硬件判断逻辑一(SA、SB与与Sf的关系)的关系)2.硬件判断逻辑二硬件判断逻辑二(Cf与与C的关系)的关系)3.硬件判断逻辑三硬件判断逻辑三(双符号位(双符号位)溢出溢出=S SA AS SB BS Sf fS SA AS Sf fS SB B溢出溢出=C=Cf f C C现在学习的是第15页,共73页3.1.3 移位操作移位操作逻辑移位逻辑移位 :数码位置变化,数值:数码位置变化,数值不变不变.1.移位类型移位类型算术移位算术移位 1 0 0 0 1 1 1 1循
13、环左移:循环左移:0:数码位置变化,数值:数码位置变化,数值变化变化,符号位不变。符号位不变。1 0 0 1 1 1 1 算术左移:算术左移:1 0 0 1 1 1 1 10 1 1 1 1 0(-15)(-30)现在学习的是第16页,共73页(1)单符号位)单符号位:0 01110 1110 (2)双符号位:)双符号位:00 1110 00 01112.正数补码移位规则正数补码移位规则(3 3)移位规则)移位规则左移左移右移右移右移右移0 0111 0 0011 左移左移左移左移右移右移右移右移01 1100 00 1110 00 0111 数符不变数符不变(单:符号位不变;双:第一符号位(
14、单:符号位不变;双:第一符号位不变)。不变)。空位补空位补0,(左移时尾数低位补左移时尾数低位补0;右移时尾数高位补;右移时尾数高位补0,右移时第二符号位移至尾数最高位右移时第二符号位移至尾数最高位)现在学习的是第17页,共73页(1)单符号位)单符号位:1 10111 0110 (2)双符号位:)双符号位:10 1100 11 01103.负数补码移位规则负数补码移位规则(3 3)移位规则)移位规则左移左移1 1011 1 1101 左移左移11 0110 11 1011 数符不变数符不变(单:符号位不变;双:第一符号位(单:符号位不变;双:第一符号位不变)。不变)。左移空位补左移空位补0(
15、第二符号位移至尾数最高位)(第二符号位移至尾数最高位).右移空位补右移空位补1右移右移右移右移右移右移右移右移现在学习的是第18页,共73页易出错处易出错处正确:正确:正确:正确:00 1110 左移左移00 1100 01 1100 01 1100 00 1110 右移右移11 0110 左移左移11 1100 10 1100 10 1100 11 0110 11 1110 右移右移00 0110 正确:正确:正确:正确:现在学习的是第19页,共73页结论:双符号位在左移的时候,如果尾结论:双符号位在左移的时候,如果尾 数最高位有进位,不论正数或负数最高位有进位,不论正数或负 数都把它保存到
16、第二符号位;右数都把它保存到第二符号位;右 移时把第二符号位的值移到尾数移时把第二符号位的值移到尾数 的最高位。的最高位。现在学习的是第20页,共73页3.1.4 舍入方法舍入方法1.0 0舍舍1 1入(原码、补码)入(原码、补码)0 00100原原 1 00101原原 1 11011补补 2.末位恒置末位恒置1 1(原码、补码)(原码、补码)0 00100原原 1 11011补补 1 00101原原 0 0010原原 1 0011原原 1 1110补补 0 0011原原 1 0011原原 1 1101补补 1 0011原原 1 1101补补 例例.保留保留4位尾数:位尾数:例例.保留保留4位
17、尾数:位尾数:现在学习的是第21页,共73页 3.2 定点乘法运算定点乘法运算3.2.1 原码一位乘法原码一位乘法 每次用一位乘数去乘被乘数。每次用一位乘数去乘被乘数。1.1.算法分析算法分析乘法乘法 部分积累加、移位。部分积累加、移位。例例.0.11011.10111.1011乘积乘积 P=X YP=X Y积符积符 S SA A=S=SX X S SY YX原原Y原原现在学习的是第22页,共73页(1 1)手算)手算 0.11010.1101 0.1011 0.1011 1101 1101 1101 1101 0000 0000 1101 1101 0.10001111 0.10001111
18、上符号:上符号:1.100011111.10001111部分积部分积问题:问题:1 1)加数增多(由乘数位数决定)。)加数增多(由乘数位数决定)。2 2)加数的位数增多(与被乘数、乘)加数的位数增多(与被乘数、乘 数位数有关)。数位数有关)。改进:将一次相加改为分步累加。改进:将一次相加改为分步累加。特点:特点:1.每次用一位乘数去乘上被乘数得到一项部分积。由于乘数每一位或者是每次用一位乘数去乘上被乘数得到一项部分积。由于乘数每一位或者是“1”或者是或者是“0”,所以得到的,所以得到的部分积或者是被乘数本身或者是部分积或者是被乘数本身或者是0。因此,我们进行乘法运算的时候,实际上就是根据乘数每
19、一。因此,我们进行乘法运算的时候,实际上就是根据乘数每一位的状态来判断获得的部分积到底是位的状态来判断获得的部分积到底是被乘数被乘数还是还是0。2.所得到的部分积是逐项左移的。因为乘数各位的权值是逐项增大,所以用乘数的各位分别所得到的部分积是逐项左移的。因为乘数各位的权值是逐项增大,所以用乘数的各位分别去乘上被乘数,那么得到的部分积的权值也是逐项增大。去乘上被乘数,那么得到的部分积的权值也是逐项增大。现在学习的是第23页,共73页(2 2)分步乘法)分步乘法每次将一位乘数所对应的部分积与每次将一位乘数所对应的部分积与原部分积的累加和相加,并移位。原部分积的累加和相加,并移位。设置寄存器:设置寄
20、存器:A A:存放:存放部分积累加和、乘积高位部分积累加和、乘积高位 B B:存放:存放被乘数被乘数 C C:存放:存放乘数、乘积低位乘数、乘积低位 设置初值:设置初值:A=00.0000A=00.0000 B=X=00.1101 B=X=00.1101 C=Y=.1011 C=Y=.1011 现在学习的是第24页,共73页问题解决:问题解决:1.在运算过程中,可能两个数相加时尾数的高位要产生进在运算过程中,可能两个数相加时尾数的高位要产生进位,这不是溢出,要把它保存起来,以便下一步继续位,这不是溢出,要把它保存起来,以便下一步继续运算。所以,运算。所以,第二符号位暂时保存运算过程中可能出第二
21、符号位暂时保存运算过程中可能出现的高位的进位;第一符号位始终都是现的高位的进位;第一符号位始终都是0 0,用来指示,用来指示累加和、被乘数都是绝对值。累加和、被乘数都是绝对值。2.把原来在手算中累加和不变,新的部分积左移一位,把原来在手算中累加和不变,新的部分积左移一位,把原来在手算中累加和不变,新的部分积左移一位,把原来在手算中累加和不变,新的部分积左移一位,改改成新的部分积不变,而让原来的累加和右移一位。成新的部分积不变,而让原来的累加和右移一位。问题:问题:1.1.既然是绝对值运算为什么有符号位?既然是绝对值运算为什么有符号位?2.2.要使加数位数仍然保持要使加数位数仍然保持4 4位,也
22、就是让位,也就是让B B寄存寄存器仍然保持器仍然保持4 4位,如何实现?位,如何实现?现在学习的是第25页,共73页步数步数 条件条件 操作操作 A C A C 00.0000 .101 00.0000 .1011 1 1 1)C Cn n=1=1+B+BC Cn n+00.1101+00.110100.00.11011101 0.1101 0.1101 0.101 0.1011 1 1101 1101 1101 1101 0000 0000 1101 1101 0.10001111 0.10001111BC 1101 1101 00.00.011001101 1.10.101 1 0.110
23、1 0.1101 0.10 0.101 11 12 2)C Cn n=1=1+B+B+00.1101+00.11010 01 1.0011001100.00.100110011111.1.10 0 0.1101 0.1101 0.1 0.10 01111 0.1101 0.1101 0.1011 0.1011 1101 1101 1101 1101 0000 0000 1101 1101 0.10001111 0.10001111BC3 3)C Cn n=0=0+0+0+00.0000+00.000000.00.1001100100.00.01000100111111.1 14 4)C Cn
24、n=1=1+B+B+00.1101+00.11010 01 1.0001000100.00.1000100011111111X X原原YY原原 =1.10001111=1.10001111A寄存器内容右移一位,寄存器内容右移一位,“1”移至移至C寄存器高位。寄存器高位。C寄存器最末寄存器最末位判断完之后,没有必要保存,就可以把位判断完之后,没有必要保存,就可以把Cn丢掉。这样后面丢掉。这样后面各位都依次右移一位,这样空出各位都依次右移一位,这样空出C的高位,用的高位,用C的高位保存的高位保存A的低位。的低位。现在学习的是第26页,共73页 2.算法流程算法流程0 A0 A、X BX B、Y C
25、Y C、0 CR0 CRC Cn n=1 =1?CR=n CR=n?1/21/2(A+BA+B)A A,C C1/21/2(A+0A+0)A A,C C CR+1 CR CR+1 CRYYNN Sx+Sy S Sx+Sy SA A现在学习的是第27页,共73页 3.3.运算规则运算规则(1 1)操作数、结果用原码表示;)操作数、结果用原码表示;(2 2)绝对值运算,符号单独处理;)绝对值运算,符号单独处理;(3 3)被乘数)被乘数(B)(B)、累加和、累加和(A)(A)取双符号位;取双符号位;(4 4)乘数末位)乘数末位(C(Cn n)为判断位,其状态决定为判断位,其状态决定 下步操作;下步操
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运算 方法 运算器
限制150内