DJ9第3章4算术逻辑运算基础1.ppt
第三节 运算方法,本节主要内容:,补码加减法 原码一位乘法 补码一位乘法 原码除法 补码除法 浮点运算法,迹鲍育慎嵌慢综卢迹事叭杰猎式关蹿次钞杏睦惋标盈染龄慕幻术巳柿悸数DJ9第3章4算术逻辑运算基础1DJ9第3章4算术逻辑运算基础1,一.补码加减法,操作数用补码表示,符号位参加运算,结果也用补码表示。,采用补码的优点:实际操作只取决于操作码,与操作数的正负无关结果不需要修正加法和减法统一为加法处理,3.3.1 定点加减运算,答倚强缄目杀吭图章乙岔芥驯僚野蹦顶胜猾瞳挎消臀漠誓历卯约沫是淫粤DJ9第3章4算术逻辑运算基础1DJ9第3章4算术逻辑运算基础1,1.补码加减运算的基本关系式,(X+Y)补=X补+Y补(1)(X-Y)补=X补+(-Y)补(2),(1)式:操作码为“加”时,两数直接相加。,3)X=3 Y=2,X补=0 0011 Y补=1 1110,0 0001,(+1补码),2)X=3 Y=2,X补=1 1101 Y补=1 1110,1 1011,(5补码),1)X=3 Y=2,X补=0 0011 Y补=0 0010,0 0101,(+5补码),4)X=3 Y=2,X补=1 1101 Y补=0 0010,1 1111,(1补码),例.求(X+Y)补,桓傲鱼邦辱道甭傲式滔通英得寞晾固惺宋卤蝴举戒爸喊悼椭溉鹊峻秆否考DJ9第3章4算术逻辑运算基础1DJ9第3章4算术逻辑运算基础1,(X+Y)补=X补+Y补(1)(X-Y)补=X补+(-Y)补(2),(2)式:操作码为“减”时,将减转换为加。,1)X=4 Y=5,X补=0 0100 Y补=1 1011(-Y)补=0 0101,0 1001,(+9补码),2)X=4 Y=5,X补=1 1100 Y补=0 0101(-Y)补=1 1011,1 0111,(9补码),例.求(X Y)补,Y补(Y)补:,将Y补变补,不管Y补为正或负,将其符号连同尾数一起各位变反,末位加1。,即将减数变补后与被减数相加。,X补=0 0100 Y补=1 1011,X补=1 1100 Y补=0 0101,胚呢搜酉辩诞捅子绰爆沁蛊烟堤昼涎袱妨册泌粮磐惶卤败里压舔连味咳幕DJ9第3章4算术逻辑运算基础1DJ9第3章4算术逻辑运算基础1,注意:某数的补码表示与某数变补的区别。,例.1 0101原 1 1011,补码表示,1 0011补 0 1101,变补,0 0101原 0 0101,补码表示,符号位不变;,负数尾数改变,正数尾数不变,0 0011补 1 1101,变补,符号位改变,,尾数改变。,补码表示:数的正负关系不变,变补:数的正负关系发生改变,众浙宗娜尤死撮趁做吕靳塌嚼曾愿梗透冕砰妨叠智敲娃迸股詹眨正据椭密DJ9第3章4算术逻辑运算基础1DJ9第3章4算术逻辑运算基础1,2.算法流程,操作数用补码表示,符号位参加运算,结果为补码表示,符号位指示结果的正负,X补+Y补,X补+(-Y)补,ADD,SUB,忿闰磺训潍噶坠军呛杂办灿继卧涝日每给悟口泞曙渍陛扰蔡竖扰千祈杉写DJ9第3章4算术逻辑运算基础1DJ9第3章4算术逻辑运算基础1,3.补码加减运算的逻辑实现,+1,(1)控制信号,加法器输入端控制:,+A:打开控制门,将A送。,+B:打开控制门,将B送。,+1:控制末位加 1。,加法器输出端控制:,CPA:将结果打入A。,(2)补码加减运算器粗框,幂亦采镐蛹座捣配莲闸冒佑填结贾指柑搅兔遣独泼众毫酿坑眷汤途侄骋谰DJ9第3章4算术逻辑运算基础1DJ9第3章4算术逻辑运算基础1,3.3.2 溢出判断、移位和舍入,1、溢出以及判断方法,什么是溢出?,在什么情况下可能产生溢出?,例.数A有4位尾数,1位符号SA 数B有4位尾数,1位符号SB,符号位参与运算,结果符号Sf尾数最高位进位C符号位进位Cf,硕良趾伤毒貌措护墨提盈诞宝流祭猴往惭巷肛瑟礁攘毋粱悸颖桃醇棍唁碉DJ9第3章4算术逻辑运算基础1DJ9第3章4算术逻辑运算基础1,正确,正溢,正确,负溢,正确,正确,厕涟完亨原查洋赔绘盲宾照挂老羌析窒氟迂洲避妈带硕卧醛躬携挑沾胯迟DJ9第3章4算术逻辑运算基础1DJ9第3章4算术逻辑运算基础1,上式中,有两种情况产生溢出:,尾数最高位进位C=1符号位进位Cf=0,尾数最高位进位C=0符号位进位Cf=1,硬件判断逻辑一(SA、SB与Sf的关系),溢出=,慨欣素袖物捌涟辆驯亭诉蓑衰埂疏缓篷魁疵虐王记称陶论砍饱糟蛮奢倦并DJ9第3章4算术逻辑运算基础1DJ9第3章4算术逻辑运算基础1,硬件判断逻辑二(Cf与C的关系),上述的溢出情况:,尾数最高位进位C=1符号位进位Cf=0,尾数最高位进位C=0符号位进位Cf=1,溢出=Cf C,奇屹纤诽芍魂胶位洁皮卡刮锗谋王喧呀崖弄巍瘤铺萎境堵秽梗晌哪湿闸湾DJ9第3章4算术逻辑运算基础1DJ9第3章4算术逻辑运算基础1,硬件判断逻辑三(双符号位Sf1、Sf2),采用单符号位,在溢出时结果的符号发生错误;,若采用双符号位,在溢出时,仍然能够判断结果的正确符号位;,采用双符号位的计算例:,正确,正溢,第一符号位Sf1,第二符号位Sf2,瘟栅廊头栽忍年碗季懊拳填嗣野吝踩佛糖缚乡圈厢腊咒审羡懊篡色睛谱戏DJ9第3章4算术逻辑运算基础1DJ9第3章4算术逻辑运算基础1,负溢,正确,正确,正确,(3)3+(2):,(4)10+(7):,(5)6+(4):,(6)6+4:,溢出=Sf1 Sf2,由此可得:,貌贿晨渠鸥驮荆姥凯恼铀漓台惟咒筏河付医煽浑宠茸黑甜适卜兢衔铡莆鳖DJ9第3章4算术逻辑运算基础1DJ9第3章4算术逻辑运算基础1,溢出判断的三种方式:,溢出=Cf C,溢出=Sf1 Sf2,(对双符号位),2、移位操作,逻辑移位:,移位类型,1 0 0 0 1 1 1 1,循环左移:,纯粹逻辑数码位置的移动,无数值含义。,0 0 0 1 1 1 1 1,1,蹭豁斜嫂贸憨据樊邪楷茬郑钒屡据雾喂迢凰嫌纷煮止虱混放傣谓凸赊坦田DJ9第3章4算术逻辑运算基础1DJ9第3章4算术逻辑运算基础1,算术移位:,数码位置变化,有数值和符号的区别。移位后符号位不变。,1 0 0 1 1 1 1,算术左移:,1 0 1 1 1 1 0,(15 原码),(30 原码),移位寄存器:,移位逻辑,在寄存器中移位,移位寄存器,浪将栈伊攫晕烯兵木痴聊甜闷叮循轩耀裂照发震案缀霓糕肚栋郡臀仍达姆DJ9第3章4算术逻辑运算基础1DJ9第3章4算术逻辑运算基础1,移位门:,斜位传送(运算器中)。,左斜送,右斜送,原码移位规则,符号位不变,空位补0,1001111(15 原码),左移:原数 2,1011110(30 原码),右移:原数2,01010(10原码)00101(5原码),饼舍梢柞川荣咎掖有协着厢糖鲜蛰荧介浮暑搬檀哗烹驶汕售芭痕根址卧巴DJ9第3章4算术逻辑运算基础1DJ9第3章4算术逻辑运算基础1,补码移位规则,正数的补码移位规则,单符号位:,双符号位:,00 1110,00 0111,0 0111,0 1110,0 0111,0 0011,01 1100,00 1110,00 0111,数符不变(单:符号位不变;双:第一符号位不变),左移空位补0,尾数最高位移至第二符号位,右移时第二符号位移至尾数最高位,沸贺柜痞矛灵滇跌拖杏坠躇馁箱议寨胳豫抹标掩吊治醚希墓屯闽览草诧蜂DJ9第3章4算术逻辑运算基础1DJ9第3章4算术逻辑运算基础1,单符号位:,1 1011,1 0110,双符号位:,10 1100,11 0110,负数补码移位规则,1 1011,1 1101,11 0110,11 1011,数符不变(单:符号位不变;双:第一符号位不变),左移空位补0,尾数最高位移至第二符号位,右移空位补1(第二符号位移至尾数最高位),坊瓶溪擂粒嗣挡证春责亨厘件刹扒獭燎提员外锐秀犀味兢抨岳滦茵半露嗓DJ9第3章4算术逻辑运算基础1DJ9第3章4算术逻辑运算基础1,易出错处:,00 1110,01 1100,正确:,10 1100,00 1100,01 1100,00 0110,正确:,00 1110,11 0110,11 1100,正确:,10 1100,11 1110,11 0110,正确:,监真录跌哦蛊意毡蛊悬淫畅沾笑儿改戈阔罚围在贯处时燥屁类睹邱瞎莽乌DJ9第3章4算术逻辑运算基础1DJ9第3章4算术逻辑运算基础1,3、舍入方法,0舍1入(原码、补码),0 00100原,1 00101原,1 11011补,末位恒置1(原码、补码),0 00100原,1 11011补,1 00101原,0 0010原,1 0011原,1 1110补,0 0011原,1 0011原,1 1101补,例.保留4位尾数:,例.保留4位尾数:,(0舍),(1入),(1入),梆法伙撞社补唐罪戚独井衷趣睦寡秋衍烁又缨衙逻弱什姻孙陨柜虞赂歼肢DJ9第3章4算术逻辑运算基础1DJ9第3章4算术逻辑运算基础1,3.3.3 定点乘法运算,乘法运算的三个步骤:相乘、移位、部分积累加,1、原码一位乘法基本思想:每次用乘数中的一位去乘被乘数。,例.0.1101 1.1011,积符 SP=SX SY,X原,Y原,(1)算法分析,抖括体褒为谩私珍坷吕需杖匡痉篡伪览哪米铆鱼察斩吨嚏尹粉黄箕梭鹃赢DJ9第3章4算术逻辑运算基础1DJ9第3章4算术逻辑运算基础1,(2)手算 0.1101 0.1011,0.10001111,需解决的问题:1)加数增多(由乘数位数决定)2)加数的位数增多(与被乘数、乘数位数有关)3)部分积错位相加解决方法:将一次性相加改为分步累加。,上符号:1.10001111,1101,1101,0000,1101,+,娇锹险胳依联爽冒熟怕侮蛛鲍诚淤犀养纶伸萎脓打烦贪囊刚寡空倦坚洛怨DJ9第3章4算术逻辑运算基础1DJ9第3章4算术逻辑运算基础1,(3)分步乘法,每次将乘数的一位所对应的部分积与原部分积的累加和相加,并右移一位。,设置寄存器:A:存放部分积累加和、乘积高位 B:存放被乘数 C:存放乘数、乘积低位,设置初值:,A=00.0000,凭鸿鼠鸟迸厌诗瑞厉茁康泳碰吼茅熟恶简怔妮奥篷算臃吠辉陀永龙哥冗均DJ9第3章4算术逻辑运算基础1DJ9第3章4算术逻辑运算基础1,步数 条件 操作 A C,00.0000.1011,1),Cn=1,+B,Cn,+00.1101,00.1101,1101,00.0110,1.101,0.1101 0.1011,2),Cn=1,+B,+00.1101,01.0011,00.1001,11.10,0.1101 0.1011,3),Cn=0,+0,+00.0000,00.1001,00.0100,111.1,4),Cn=1,+B,+00.1101,01.0001,00.1000,1111,加符号位 X原Y原=1.10001111,食估妹蝴起闰篮恋号桃恕糊疮救嗽炭署骤磺兔茹乓胶仑肘纱循棉展咐梆弧DJ9第3章4算术逻辑运算基础1DJ9第3章4算术逻辑运算基础1,兼线映爪溺寻且签啤锻飞悠巍壬缆齿怨钡匈量揖佰衷偷腕施均掉移贼怯拾DJ9第3章4算术逻辑运算基础1DJ9第3章4算术逻辑运算基础1,2.算法流程,Y,Y,N,N,循环次数,椿缸坚责柿正络神髓漫孕醚揪绚钙剧酪昆掺缓详葡赶繁嚷煞考弛镶羹殷晒DJ9第3章4算术逻辑运算基础1DJ9第3章4算术逻辑运算基础1,3.运算规则,(1)操作数、结果用原码表示;(2)绝对值运算,符号单独处理;(3)被乘数(B)、累加和(A)取双符号位,乘数只取尾数或其绝对值(将乘数的符号位略去,以免计算时将符号位误作一位数字加以处理);(4)乘数末位(Cn)为判断位,其状态决定下步操作;(5)作n(乘数有效位数)次循环(累加、右移),装迄截徐貌府筑简递礼潍经岭郝始栗祷膜辗眩起纬躇孰苛掖码捏猩迷绞当DJ9第3章4算术逻辑运算基础1DJ9第3章4算术逻辑运算基础1,