- 1、本文档共49页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]运算方法与运算器
计算机组成原理 第3章 运算方法与运算器 运算方法与运算器在计算机组成原理中是关联紧密的两部分. 不同的运算方法构成不同的ALU,因此运算方法是ALU组织的核心问题。 本章讲述的主要内容为: 1.定点加减法运算; 2.定点乘法运算 3.定点除法运算; 4.定点运算器。 3.1 定点数加减法运算 加、减法运算是计算机中最基本的运算,因减法运算可看作被减数加上一个减数的负值,即A-B=A+(-B) 。 现代计算机中都采用补码作加减法运算。 3.1.1 补码加法运算 负数用补码表示后,就可以和正数一样来处理。这样运算器只需要一个加法器就可以了。不必为了负数的加法运算,再配一个减法器。 补码加法的基本公式为: 整数? [A]补+[B]补=[A+B]补? (mod 2n+1) (3-1) 小数??? [A]补+[B]补=[A+B]补?(mod 2) (3-2) 所以 x+y=+0.1110。 3.1.2 补码减法运算 对于减法运算,因为:A-B=A+(-B), 则[A-B]补=[A+(-B)]补 (3-3) 由补码加法的基本公式可得: 整数:[A-B]补=[A+(-B)]补=[A]补+[-B]补 ?(mod 2n+1)(3-4) 小数:[A-B]补=[A]补+[-B]补 ?(mod 2) (3-5) [例3-2] x=0.1010,y=-0.0011,用补码的加法求x+y。 [解] [x]补=0.1010,[y]补=1.1101 [x]补+[y]补=0.1010+1.1101=10.0111 所以x+y=0.0111。 3.1.3 溢出判断 定义:在计算机中,超出机器字长的现象,称为溢出。 [例3-3] 设机器数字长为8位,其中一位为符号位,令A=-93,B=+45,求[A-B]补。 [解] 由A=-93=-1011101,得[A]补=1 0100011。 由B=+45=+0101101, 得[B]补=0 0101101, [-B]补=1 1010011。 [A-B]补=[A]补+[-B]补 =1 0100011+1 1010011 =10 1110110 分析: 故[A-B]补=0 1110110,还原成真值得A-B=118,结果出错。 两个正数相加,结果大于机器所能表示的最大正数,称为上溢。 两个负数相加,结果小于其所能表示的最小负数,称为下溢。 如何判断溢出? 定点补码加减运算判断溢出有如下三种方法。 符号不同的两个补码相加是不会产生溢出的,所以可不考虑。 1.用计算结果的符号位来判断溢出 符号位相同的两个补码相加,如果和的符号 位与加数(或被加数)的符号相反,则表明运算 结果溢出; 2.双高位判别法 用计算结果最高数值位向符号位的进位值c1与符号位的进位值c0来判断溢出 两个数的补码实现加减运算时,若计算结果的最高位向符号位的进位值c1与符号位的进位值c0不同,则表明产生了溢出。 判断溢出的逻辑表达式为: 若v=1,则说明运算结果出现溢出。 [例3-4] 设x=+1011,y=+1001,求[x+y]补。 [解] [x]补=0 1011,[y]补=0 1001 [x+y]补=0 1011+0 1001=1 0100。 因为c0 =0,c1=1。所以v=c0+c1=1,产生了溢出。 [例3-5] 设x=-1101,y=-1011,求[x+y]补。 [解] [x]补=1 0011,[y]补=1 0101 [x+y]补=1 0011+1 0101=10 1000。 因为c0=1,c1=0。所以v=c0+c1=1,产生了溢出。 3.采用双符号位进行判断 符号位用两个0(表示正数)或两个1(表 示负数)来表示。 两个符号位都看作为数码参加运算, 结果的两个符号位的值相同,则说明没有发 生溢出;若结果的两个符号位不同,则说明 发生了溢出。有如下两种情况: (1)运算结果的符号位为01时,表明两个正数相加,结果大于机器所能表示的最大正数,称为上溢,即正溢出; (2)运算结果的符号位为10时,表明两个负数相加,结果小于机器所能表示的最小负数,称为下溢,即负溢出。 [例3-6] 设x=+1100,y=+1000,求补码之和[x+y]补。 [解]利用双符号位表示, [x]补=00 1100, [y]补=00 1000
文档评论(0)