资源描述:
《组成原理 DJ9 算术逻辑运算基础ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三节运算方法本节主要内容:补码加减法原码一位乘法补码一位乘法原码除法补码除法浮点运算法3.3.1补码加减法数据的补码表示:一个N位的数据,最高位为符号位:(1)当X=+Xn–2Xn–3....X1X0(Xn–1为符号位)X补=2n+X=0Xn–2Xn–3....X1X0比如:一个数的有效位为3位,连同符号位共4位:X=+101则[X]补=24+101=10000+101=10101超过4位,舍去符号位=0101=2n–1+2n–1–Xn–2Xn–3....X1X0=2n–1+(2n–1–
2、1)+1–Xn–2Xn–3....X1X0=2n–1+11...1–Xn–2Xn–3....X1X0+1(n–1)个1=2n–1+Xn–2Xn–3....X1X0+1=1Xn–2Xn–3....X1X0+1即:当X位负数时,X的补码是各位变反加1(2)当X=–Xn–2Xn–3....X1X0X补=2n+X=2n–Xn–2Xn–3....X1X0—补码加减法数据用补码表示,符号位参加运算。注意以下问题:如何将减法转换为加法?结果是否需要修正?1、基本关系式(X+Y)补=X补+Y补(1)(X–Y)补=
3、X补+(–Y)补(2)(1)操作码为“加”时加数与被加数的补码相加,结果为真值的补码。例3.X=3Y=–2X补=00011Y补=11110+00001(+1的补码)例2.X=–3Y=–2X补=11101Y补=11110+11011(–5的补码)X=3Y=2X补=00011Y补=00010+00101(+5的补码)例1.求(X+Y)补例4.X=–3Y=2X补=11101Y补=00010+11111(–1补码)即:方法是:将减数变补后与被减数的补码相加。Y补将Y补变补(–Y)补(2)操作码为“减”时不管Y补为
4、正或负,将其符号连同尾数一起各位变反,末位加1。将减转换为加。1)X=4Y=–5X补=00100Y补=1101101001(+9的补码)2)X=–4Y=5X补=11100Y补=00101(–Y)补=11011+10111(–9的补码)求(X–Y)补例:(–Y)补=00101+注:数的补码表示与数变补的区别。例.10101原例.10011补补码表示变补00101原补码表示符号位不变;负数尾数改变,正数尾数不变。00011补变补符号位改变,尾数改变。补码表示:数的正负关系不变变补:数的正负关系发生改变1101
5、10010101101111012、算法流程以及逻辑实现操作数用补码表示,符号位参加运算结果为补码表示,符号位指示结果正负X补+Y补X补+(–Y)补ADDSUB(1)算法流程(2)实现原理图(逻辑实现)Σi+1+ABiAi+B+BBiBiΣ→A..........................................3.3.2溢出判断、移位和舍入1、溢出以及判断方法什么是溢出?在什么情况下可能产生溢出?(如何判断?)例.数A有4位尾数,1位符号SA数B有4位尾数,1位符号SB符号位参与运算结
6、果符号Sf尾数最高位进位C符号位进位Cf运算结果超出了数据的表示范围即为溢出正确0001100010+(1)A=3B=23+2:00101(2)A=10B=710+7:0101000111+10001正溢正确负溢(3)A=–3B=–2–3+(–2):110111110111110+(4)A=–10B=–7–10+(–7):011111011011001+正确正确(5)A=6B=–46+(–4):000100011011100+(6)A=–6B=4–6+4:111101101000100+上式中,有两种情况
7、产生溢出:(2)A=10B=710+7:0101000111+10001正溢负溢(4)A=–10B=–7–10+(–7):011111011011001+尾数最高位进位C=1符号位进位Cf=0尾数最高位进位C=0符号位进位Cf=1①硬件判断逻辑一(SA、SB与Sf的关系)溢出=SASBSf+SASBSf②硬件判断逻辑二(Cf与C的关系)上述的溢出情况:(2)A=10B=710+7:0101000111+10001正溢负溢(4)A=–10B=–7–10+(–7):011111011011001+尾数最高位进
8、位C=1符号位进位Cf=0尾数最高位进位C=0符号位进位Cf=1溢出=CfC③硬件判断逻辑三(双符号位Sf1、Sf2)采用单符号位,在溢出时结果的符号发生错误;若采用双符号位,在溢出时,仍然能够判断结果的正确符号位;采用双符号位的计算例:正确(1)3+2:000011000010+000101(2)10+7:001010000111+010001正溢第一符号位Sf1第二符号位Sf2负溢正确正确正确(3)–3+(–2):1