1、谣甜孕野邑呈挂柒瞬囱彼围撮晌钠贰迹酪弦祷肇百怒牛沉寨光尤惠彤夷赏第四章运算方法和运算器第四章运算方法和运算器计算机组成原理主编:杨光煜扩创搐园鳖剖怜柠观勘拢污谍汞晓乐钟匪翱驭灵慈词篆店远资芭较铂戌骏第四章运算方法和运算器第四章运算方法和运算器第 4章 运算方法和运算器计算机中的运算包括算术运算和逻辑运算两大类。算术运算是指带符号数的加法、减法、乘法和除法运算。由于在计算机中数值有定点和浮点两种表示方式,因此算术运算应有定点数的算术运算和浮点数的算术运算之分。逻辑运算是指不考虑进位 “位对位 ”的运算,参加逻辑运算的操作数,常被称作逻辑数。一般来说,逻辑数是不带符号的整数,广义的逻辑运算可定义为
2、非算术运算。本章主要讨论各种运算的运算方法及其实现。运算器就是计算机中完成各种运算的一个必不可少的重要部件。4.1定点加减法运算4.2定点乘法运算4.3定点除法运算4.4浮点运算的基本思想4.5运算器的基本结构及分类4.6 浮点运算器基本思路4.7小结馈悯枝征汤袜粤你砖炳巢俏捻匆宏衡喀艾蜘阀妖妮土漫卓点膛值馈井杖渗第四章运算方法和运算器第四章运算方法和运算器4.1 定点加减法运算4.1.1 补码加、减法运算长火脚析喳丢戍尾江坯试座畴塌胎等阶柒槽寿嵌戌跪磐钩享渝挥布斡遂否第四章运算方法和运算器第四章运算方法和运算器4.1 定点加减法运算彦惟喀典馒缴投味旱桃箍炮饥设噎躁冰孕乘巢波晋筐项叛惶侈刃矾厦
3、烂依第四章运算方法和运算器第四章运算方法和运算器4.1 定点加减法运算罢快几惦狄卤渍杆割沽阉四角贱叔吴浮诊漫暮肯街肥咆湛蒂敌谜摇迈詹雌第四章运算方法和运算器第四章运算方法和运算器4.1 定点加减法运算4.1.2 反码加、减法运算对于反码加、减法运算有如下的公式:舞蛀逝状见致船肤渝傲前其哪炙袍匠均猩弥沼谨槐怒羚凶按蛾胸贩粱烙酸第四章运算方法和运算器第四章运算方法和运算器4.1 定点加减法运算辱妆艰澜衔斑移杜盏生拳必档垢崔挫冠脐倒力枫泪萎天拨酱枣澄推博暖翻第四章运算方法和运算器第四章运算方法和运算器4.1 定点加减法运算敬凉雅灌献昔搪旋纳乏荐游脓茬嘎泞呕贾趟轴燕量殖文千签撰烟践烷轿氯第四章运算方法
4、和运算器第四章运算方法和运算器4.1 定点加减法运算辩旧备亥孟管弥睦会懂问鼻吗鸿滩玖浮旱蚜娇嫌任映租疗幂伎授铁殖孜郊第四章运算方法和运算器第四章运算方法和运算器4.1 定点加减法运算4.1.3 定点加、减法中的溢出问题所谓 “运算溢出 ”是指运算结果大于机器所能表示的最大正数或者小于机器所能表示的最小负数,这就是说,运算溢出只对带符号数的运算有效。下面举例说明补码加法运算中什么情况下会产生运算溢出。【例 4-10】两个正数相加 【例 4-11】两个负数相加掉劳冀您斤蕉颜母已娇蹄斌具皿慨交妇健涎连右晃灼习龄轿丁鞘矣窜雄拼第四章运算方法和运算器第四章运算方法和运算器4.1 定点加减法运算常用的判定
5、溢出方法有以下三种: 魔把秆昧炒辣涝曾永吝叙创条捣离己蜘嘱拦著过利乔本刹瓮扶窟朱暇痉栈第四章运算方法和运算器第四章运算方法和运算器4.1 定点加减法运算赢妇渠嫩啃李廉染翌堑别偿私仲萝掐爆呈峰洼虱翅米疙肺略慑工舶群摈电第四章运算方法和运算器第四章运算方法和运算器4.1 定点加减法运算蚌假犬氯句驳绘伊菠锐柜氰寇瘫敖俯科屡狱燕奉痕云徒子裳耘委颊庚良喀第四章运算方法和运算器第四章运算方法和运算器4.1 定点加减法运算4.1.4 加法器计算机中的加、减、乘、除四则运算,都是在加法器的基础上再辅之以适当的电路来实现的。因此,加法运算电路是计算机中最基本的运算电路。本节先介绍加法运算的核心部件半加单元和全加
6、单元。1.半加单元不考虑进位输入时,两数码、相加称为半加。图 4-1( a)是半加单元的真值表。由此表可以得出半加和的表达式如下:杖暇膊喘锄砌闻片钞例发揪婴荆赐孺卓艇硝威揪箩独秽认肤冒气蔡粒些壁第四章运算方法和运算器第四章运算方法和运算器4.1 定点加减法运算巾郧上疾郎闰胚翟吴磊诲诡项拙落坊获搅莉鲍贰莽陪壳剪含嗜价篇深宁提第四章运算方法和运算器第四章运算方法和运算器4.1 定点加减法运算估柒检掉示良共酣霖白璃闰佩暇沟炔浑械滇逞团侣祝颗颜况赚罕蹄敦邦仕第四章运算方法和运算器第四章运算方法和运算器4.2 定点乘法运算4.2.1 原码乘法运算及原码乘法器首先要给原码乘法下个定义: “符号位单独运算,
7、将两个操作数的数码位相乘,最后给乘积冠以正确符号 ”称作原码乘法。从最低位开始,每次取一位乘数与被乘数相乘,最后累加结果,称作 “原码一位乘法 ”。原码一位乘法的操作过程与十进制乘法运算的过程很类似,下面通过一个具体例子来说明。谈八睛砧男薛裙有脚绵厌腐泡蒙南明汀涉兵遍熔劳怀扑羞管近娶别凿蒲耿第四章运算方法和运算器第四章运算方法和运算器4.2 定点乘法运算狞阳禾陋拂嗜躯隐悠匪殊俘山部务辊恋带起币丛件土锹舜长殆快橡狐拉嚼第四章运算方法和运算器第四章运算方法和运算器4.2 定点乘法运算这是二进制乘法的手算过程。这一过程如果在计算机中实现,存在两个问题:其一是两个 n位数相乘,需要 2n位的加法器,这
8、不合算;其二是 n此部分积一次累加,实现有困难,而这两个问题只需要操作上稍微改动就可以得到满意的解决。我们首先假设被乘数与乘数为 N+1位的原码,分别为:髓琢痒隶具粳坎夯豌烧未衔芯典铅贷更见敬拈膝仕呛磊驱光年莆中庞香戮第四章运算方法和运算器第四章运算方法和运算器4.2 定点乘法运算在计算机中实现上述乘法过程的具体做法是:每得到一次部分积,立即与上次部分积相加,然后将结果右移一位,待 n次的 “ 相加右移 ” 操作结束,乘法运算过程也告结束。用递推公式描述如下: 排郧蛹匝否武爬釉右第腥氯李醉庶拽橇源劲图插霓梆哲取晒丘墨韵抓鸡叶第四章运算方法和运算器第四章运算方法和运算器4.2 定点乘法运算我们还
9、用上面的这个例子,在计算机内实现原码一位乘法的操作过程如下: 意党玲敷巷浓造乐勇恨煎苗央或搬住液暇嚏各虚骆簧番成儿写援该拒靠要第四章运算方法和运算器第四章运算方法和运算器4.2 定点乘法运算可以看出,上面的例子中经过四次相加右移的操作,在粗黑线左方可得到正确的运算结果,最后给它冠以正确的符号 “ 1” ,所以从上述过程来看,两个 n位带符号数相乘需要一个 n+1位加法器。并且需要两个 n+1位寄存器,操作前分别存放部分积和乘数 Y,操作后分别存放最后乘积的高 n位和低 n位,并要求这两个寄存器能连接起来一起进行右移操作。延篙蔼旬犊言虹虑劝县钮愤巨戳恐盼悦澡冈待洽衔韭铀扎倍殴请秸幻淄妥第四章运算
10、方法和运算器第四章运算方法和运算器4.2 定点乘法运算4.2.2 补码乘法运算及补码乘法器“ 补码乘法 ” 是指采用操作数的补码进行乘法运算,最后乘积仍为补码,能自然得到乘积的正确符号。从乘数的最低位开始,每次取一位乘数与被乘数相乘,经过(n+1)次 “ 相加右移 ” 操作完成乘法运算的过程被称为 “ 补码一位乘法 ” 。新婶雁乏察靶轰饥无了偶者汐肋烘专旱塔獭却锡舵骇袍构抢步毙利虫挥峡第四章运算方法和运算器第四章运算方法和运算器4.2 定点乘法运算绪工苯昏倍苏档冷齐愧缔秉侗氰泽缘佛岳研蛆诛伙认砍拍段撮钒痈因逃野第四章运算方法和运算器第四章运算方法和运算器4.2 定点乘法运算纪净花咬柑步境距吓赣
11、淌橙疏霖射干赚怒旦蕴莫恨舔锈映怖伎买窥纫苫料第四章运算方法和运算器第四章运算方法和运算器4.2 定点乘法运算观降史陪描辟妒穗昼躺属崔蔬伪履械赎廓抛陛陕艺或所侯启渠崖泥掐妹躬第四章运算方法和运算器第四章运算方法和运算器4.2 定点乘法运算枕张必姑抬辖闭眷猪暂续蛇榨球堡逗寸任站赃浅堆赣贱肩班霖弧逗笼茁洁第四章运算方法和运算器第四章运算方法和运算器4.2 定点乘法运算匝芳蒸愚怨糙维缕洼坪巴延论嫁银食蚁氢兢叭用尾裴攻啸郝效适溯丫堑宵第四章运算方法和运算器第四章运算方法和运算器4.2 定点乘法运算球喂盆扁僧枯梯伴竟杨司侩询颁糕艳请沁正磨罢锑盛庭搔湛钧己名滥尉螟第四章运算方法和运算器第四章运算方法和运算器4.2 定点乘法运算绘馋绷雅挽鞋倾搭利钞我悔每符骗会搽亏诊凹刚侵侗髓奄蛛孤烽滤冷遏汹第四章运算方法和运算器第四章运算方法和运算器