欢迎来到天天文库
浏览记录
ID:48225561
大小:1.19 MB
页数:60页
时间:2020-01-18
《微机原理第三章(1).ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第三章运算方法与运算器⑴一、定点加减法运算方法及实现在计算机中定点加减法运算基本上都是采用补码。因此这里只讨论补码的加减法运算。1、补码加减法运算方法对于补码加减法运算需要证明如下公式:[X+Y]补=[X]补+[Y]补[X-Y]补=[X]补+[-Y]补证明分四种情况,采用定义来证明。第三章运算方法与运算器⑵例1:已知:X=-0.0625,Y=-0.75。求:X+Y,X-Y解:X=-0.0001Y=-0.1100[X]原=1.0001[Y]原=1.1100[X]补=1.1111[Y]补=1.0100[-Y]补=0.1100[X
2、]补=1.1111[X]补=1.1111+[Y]补=1.0100+[-Y]补=0.1100---------------------------------------------[X+Y]补=1.0011[X-Y]补=0.1011[X+Y]原=1.1101[X-Y]原=0.1011X+Y=-0.1101X-Y=+0.1011=-0.8125=+0.6875第三章运算方法与运算器⑶例2:已知:X=-20,Y=+9。求:X+Y,X-Y解:X=-10100Y=+01001[X]原=110100[Y]原=001001[X]补=10
3、1100[Y]补=001001[-Y]补=110111[X]补=101100[X]补=101100+[Y]补=001001+[-Y]补=110111---------------------------------------------[X+Y]补=110101[X-Y]补=100011[X+Y]原=101011[X-Y]原=111101X+Y=-01011X-Y=-11101=-11=-29第三章运算方法与运算器⑷结论:补码运算能将减法变为加法,是的运算器中只需一个加法器;补码加减法运算时,符号位与数码位一样参加运算,能
4、自然得到结果的正确符号;补码小数的加减法运算以“2”为模,补码整数运算以“2n+1”为模,即符号位向更高位的进位自然丢失,不影响运算结果的正确性。2、定点加减法运算中的溢出问题“运算溢出”是指运算结果大于机器所能表示的最大正数或小于所能表示的最小负数。“运算溢出”只对带符号数的运算有效。第三章运算方法与运算器⑸下面举例说明什么情况下会产生溢出。[X]补=0.1010[X]补=1.0001+[Y]补=0.1001+[Y]补=1.0111---------------------------------------------[
5、X+Y]补=1.0011[X+Y]补=0.1000从上述例子可以看出,两个正数相加,结果为负数;而两个负数相加,结果为正数,显然是错误的,其原因是由于运算产生了溢出;除此之外,正数减负数或负数减正数,也可能产生运算溢出。溢出是一种错误,计算机在运算过程中必须能发现这种错误,并进行必要的处理,否则将产生严重的后果。常用的判溢出的方法有以下两种:采用变形补码判溢出;利用符号位进位信号判溢出。第三章运算方法与运算器⑹①采用变形补码判溢出“变形补码”是采用2个符号位的补码,记作[X]’补。上面的两个例子,若采用变形补码运算,结果为:
6、例1:[X]’补=00.1010例2:[X]’补=11.0001+[Y]’补=00.1001+[Y]’补=11.0111-----------------------------------------------[X+Y]’补=01.0011[X+Y]’补=10.1000例1中,运算结果的两位符号位为“01”,表示产生了正溢出。例2中,运算结果的两位符号位为“10”,表示产生了负溢出。不溢出时,两个符号位应相同,为“00”或“11”。第三章运算方法与运算器⑺结论:采用变形补码进行加减运算时,运算结果的两位符号位应相同;若两
7、个符号位为“00”,表示结果是一个正数,反之,若为“11”,表示结果是负数;若两个符号位不同,则表示运算产生了溢出,且左边一位表示结果的正确符号,即若结果的两位符号位为“01”,表示结果的正确符号应为正,即产生了正溢出。否则若结果的两位符号位为“10”,表示结果的正确符号应为负,即产生了负溢出;这种方法简单,容易实现,只要在两个符号位上增设一个半加器即可,但运算器要增加一位字长,或要降低一位运算精度。第三章运算方法与运算器⑻②利用符号位的进位信号判溢出对于带符号数,最高位是符号位,若将最高数码位向符号位的进位叫做“进位入”,
8、记作Cn-1,而将符号位向向更高位的进位叫做“进位出”,记作Cn,则对上面的例子,有如下情形:例1:[X]补=0.1010例2:[X]补=1.0001+[Y]补=0.1001+[Y]补=1.0111---------------.----------------------.-------
此文档下载收益归作者所有