【教学课件】第五章运算方法和运算器.ppt
《【教学课件】第五章运算方法和运算器.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第五章运算方法和运算器.ppt(106页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 第五章 运算方法和运算器本章着重讨论两个大问题:本章着重讨论两个大问题:运算方法运算方法:即即计算机中数值数据的计算机中数值数据的运算规则运算规则 加减法(定点,浮点)加减法(定点,浮点)(补码为重点)(补码为重点)移位运算移位运算 乘除法(定点,浮点)乘除法(定点,浮点)(难点)(难点)逻辑运算逻辑运算运算器的基本结构和工作原理运算器的基本结构和工作原理:着重讨论运算规则的具体物理实现着重讨论运算规则的具体物理实现(难点)(难点)规则规则第五章 运算方法和运算器5.1 5.1 定点加减运算定点加减运算 原码加减法原码加减法原码加减运算规则原码加减运算规则(P P9494 ):要考虑要考虑符
2、号符号和和数值数值两部分两部分同同号号相相加加和和异异号号相相减减:数数值值部部分分相相加加,结结果果的的符符号号取取被被加加(减减)数符号数符号;异异号号相相加加和和同同号号相相减减:数数值值部部分分相相减减,结结果果的的符符号号取取绝绝对对值值大大的的数数的的符符号号,但但数数值值部部分分相相减减,要要将将减减数数变变补补,变变为为加加法法进行。进行。对对于于定定点点机机,两两数数同同号号相相加加和和异异号号相相减减,结结果果可可能能溢溢出出,须须作作溢溢出出判判断断。一一般般机机器器溢溢出出后后,提提示示溢溢出出信信息息,然后停机。然后停机。原原码码一一般般不不用用来来做做加加减减运运算
3、算,而而多多用用来来做做乘乘除除运运算算,做加减运算时,多用补码。做加减运算时,多用补码。第五章 运算方法和运算器5.1 5.1 定点加减运算定点加减运算 补码加减法运算补码加减法运算(重点重点)引引入入补补码码后后,不不仅仅减减法法能能变变成成加加法法,而而且且符符号号位位能能同同数值位一样参与加运算,这样可以大大简化运算器的结构。数值位一样参与加运算,这样可以大大简化运算器的结构。1 1、补码加减运算规则、补码加减运算规则 参加运算的两个操作数均用补码表示;参加运算的两个操作数均用补码表示;符号位作为数的一部分参加运算;符号位作为数的一部分参加运算;若做加法,则两数直接相加;若做加法,则两
4、数直接相加;XXYY补补=X=X补补YY补补 若做减法,则将被减数与减数的机器负数相加;若做减法,则将被减数与减数的机器负数相加;XXYY补补=X=X补补 YY补补 (mod 2,mod 2,一位符号位一位符号位))运算结果用补码表示。运算结果用补码表示。第五章 运算方法和运算器2.2.变补的概念:变补的概念:对所有二进制位对所有二进制位(包括符号位包括符号位)均取反,然后在末尾在加均取反,然后在末尾在加1 1已知已知YY补补,求,求 YY补补=Y=Y补补 变补变补的方法是:的方法是:对对YY补补,包括符号位在内,各位取反,末位加,包括符号位在内,各位取反,末位加1 1。-Y-Y补补被称为被称
5、为YY补补的机器负数,由的机器负数,由YY补补求求-Y-Y补补的过程称为对的过程称为对YY补补变补(求补)变补(求补),补码补码:一个负数由原码表示转换成补码表示时一个负数由原码表示转换成补码表示时 符号位是不变的,仅对数值符号位是不变的,仅对数值位的各位变反,末尾加位的各位变反,末尾加“1”“1”。变补变补:则不论这个数的真值是正是负则不论这个数的真值是正是负,一律连同符号位一起变反,末尾加一律连同符号位一起变反,末尾加1 1。YY补补表示的真值如果是正数,则变补后表示的真值如果是正数,则变补后-Y-Y补补所表示真值变为负数,反之亦然所表示真值变为负数,反之亦然 。例如:例如:YY补补=1.
6、01101=1.01101 YY补补=0.10011=0.10011 3 3、溢出判断、溢出判断一般用一般用双符号位进行判断双符号位进行判断:符号位符号位00,00,表示正数表示正数,符号位符号位11,11,表示负数表示负数结果的符号位为结果的符号位为0101时,称为上溢;时,称为上溢;结果的符号位为结果的符号位为1010时,称为下溢时,称为下溢 XX补补 0.1101 0.1101+Y+Y补补 0.1001 0.1001X+YX+Y补补 1 1.0110.0110XX补补 00.1101 00.1101+Y+Y补补 00.1001 00.1001X+YX+Y补补 0 01 1.0110.01
7、10第五章 运算方法和运算器例例1:1:X=0.0101 Y=-0.1001 X=0.0101 Y=-0.1001 求求XY=?XY=?解:解:XX补补=00.0101 Y=00.0101 Y补补=11.0111 -Y=11.0111 -Y补补=00.1001 =00.1001 两符号位相同,无溢出两符号位相同,无溢出 XX补补 00.0101 00.0101+Y+Y补补 11.0111 11.0111X+YX+Y补补 1111.1100.1100XX补补 00.0101 00.0101+-Y+-Y补补 00.1001 00.1001X-YX-Y补补 0000.1110.1110X+Y=-0.
8、0100X+Y=-0.0100X-Y=+0.1110X-Y=+0.1110第五章 运算方法和运算器例例2:2:X=0.1011 Y=0.1001 X=0.1011 Y=0.1001 求求XY=?XY=?解:解:XX补补=00.1011 Y=00.1011 Y补补=00.1001 -Y=00.1001 -Y补补=11.0111 =11.0111 两符号位相异,正溢出两符号位相异,正溢出第一符号位为正确符号第一符号位为正确符号 XX补补 00.1011 00.1011+Y+Y补补 00.1001 00.1001X+YX+Y补补 0101.0100.0100XX补补 00.1011 00.1011+
9、-Y+-Y补补 11.0111 11.0111X-YX-Y补补 100100.0010.0010X+Y=X+Y=溢出溢出X-Y=+0.0010X-Y=+0.0010 两符号位相同,无溢出两符号位相同,无溢出 第五章 运算方法和运算器例例3:3:X=-0.1011 Y=-0.1001 X=-0.1011 Y=-0.1001 求求XY=?XY=?解:解:XX补补=11.0101 Y=11.0101 Y补补=11.0111 -Y=11.0111 -Y补补=00.1001 =00.1001 两符号位相异,负溢出两符号位相异,负溢出第一符号位为正确符号第一符号位为正确符号 XX补补 11.0101 11
10、.0101+Y+Y补补 11.0111 11.0111X+YX+Y补补 1 11010.1100.1100XX补补 11.0101 11.0101+-Y+-Y补补 00.100100.1001X-YX-Y补补 1111.1110.1110X+Y=X+Y=溢出溢出X-Y=-0.0010X-Y=-0.0010 两符号位相同,无溢出两符号位相同,无溢出 第五章 运算方法和运算器总结:总结:1.1.用模用模4 4补码进行加法运算,结果的两符号位补码进行加法运算,结果的两符号位 相异时,表示溢出;相异时,表示溢出;0101正溢出、正溢出、10 10 负溢出;负溢出;相同时,表示不溢出相同时,表示不溢出2
11、.2.模模4 4补补码码相相加加的的结结果果,不不论论溢溢出出与与否否,第第一一符符号号位位始终指示正确的符号始终指示正确的符号建议:以模建议:以模4 4补码做习题补码做习题!第五章 运算方法和运算器练习:练习:求求XY=?XY=?1.X=0.1001 Y=-0.11001.X=0.1001 Y=-0.1100 X+Y=-0.0011 X-Y X+Y=-0.0011 X-Y 溢出溢出2.X=-0.0110 Y=0.11012.X=-0.0110 Y=0.1101 X+Y=0.0111 X-Y X+Y=0.0111 X-Y 溢出溢出3.X=-0.1010 Y=-0.10013.X=-0.1010
12、 Y=-0.1001 X+Y X+Y 溢出溢出 X-Y=-0.0001 X-Y=-0.0001 第五章 运算方法和运算器三、反码加减法运算三、反码加减法运算 1 1、反码加减运算规则、反码加减运算规则 参加运算的两个操作数均用反码表示;参加运算的两个操作数均用反码表示;符号位作为数的一部分参加运算;符号位作为数的一部分参加运算;若做加法,则两数直接相加;若做加法,则两数直接相加;X反反+Y反反=X+Y反反 若做减法,则将被减数与连同符号位一起变反后的减数相加;若做减法,则将被减数与连同符号位一起变反后的减数相加;X反反+-Y反反=X-Y反反 运算时如果符号位产生进位运算时如果符号位产生进位,则
13、在末位加则在末位加1,1,成为循环进位成为循环进位;运算结果用补码表示。运算结果用补码表示。对于补码:对于补码:XX补补 00.1101 00.1101+Y+Y补补 11.1110 11.1110X+YX+Y补补 100100.1011.1011去掉正确去掉正确第五章 运算方法和运算器三、反码加减法运算三、反码加减法运算 2 2、说明:说明:反反码码加加法法,规规则则同同补补码码加加法法,但但若若符符号号位位有有进进位位,需将此进位加到末位需将此进位加到末位循环进位循环进位 由由YY反反如何求如何求-Y-Y反反?对对YY反反,包括符号位,各位求反。,包括符号位,各位求反。第五章 运算方法和运算
14、器例例1 1:X=0.1101 Y=-0.0010 X=0.1101 Y=-0.0010 用反码规则用反码规则求求XY=XY=?解解:XX反反00.1101 Y00.1101 Y反反11.1101 -Y11.1101 -Y反反00.001000.0010XX反反 00.1101 00.1101+Y+Y反反 11.1101 11.1101X+YX+Y反反 1 10000.1010.10101 10000.1011.1011XX反反 00.1101 00.1101+-Y+-Y反反 00.0010 00.0010X-YX-Y反反 0000.1111.1111X+Y=0.1011X+Y=0.1011X
15、-Y=0.1111X-Y=0.1111第五章 运算方法和运算器例例2 2:X=0.1011 Y=-0.0101 X=0.1011 Y=-0.0101 用反码规则求用反码规则求XY=XY=?解解:XX反反00.1011 Y00.1011 Y反反11.1010 -Y11.1010 -Y反反00.010100.0101XX反反 00.1011 00.1011+Y+Y反反 11.1010 11.1010X+YX+Y反反 1 10000.0101.01011 10000.0110.0110XX反反 00.1011 00.1011+-Y+-Y反反 00.0101 00.0101X-YX-Y反反 0101.
16、0000.0000X+Y=0.0110X+Y=0.0110X-Y=X-Y=溢出溢出第五章 运算方法和运算器练习:练习:1 1、X=-0.1100 Y=-0.0010 X=-0.1100 Y=-0.0010 用反码规则求用反码规则求XY=XY=?解解:XX反反11.0011 Y11.0011 Y反反11.1101-Y11.1101-Y反反00.001000.0010XX反反 11.0011 11.0011+Y+Y反反 11.1101 11.11011 11111.0001.0001XX反反 11.0011 11.0011+-Y+-Y反反 00.0010 00.0010X-YX-Y反反 1111.
17、0101.0101X+Y=-0.1110X+Y=-0.1110X-Y=-0.1010X-Y=-0.1010X+YX+Y反反 1 11111.0000.0000第五章 运算方法和运算器练习:练习:2 2、X=-0.1101 Y=0.0110 X=-0.1101 Y=0.0110 用反码规则求用反码规则求XY=XY=?解解:XX反反11.0010 Y11.0010 Y反反00.0110-Y00.0110-Y反反11.100111.1001XX反反 11.0010 11.0010+Y+Y反反 00.0110 00.0110XX反反 11.0010 11.0010+-Y+-Y反反 11.1001 11
18、.1001X-YX-Y反反 1 11010.1011.1011X+Y=-0.0111X+Y=-0.0111X-Y=X-Y=溢出溢出X+YX+Y反反 1111.1000.1000第五章第五章 运算方法和运算器运算方法和运算器5.2 5.2 补码的溢出判断与检测方法补码的溢出判断与检测方法1.1.溢出的产生溢出的产生 在补码加减运算中,有时会遇到这样的情况:在补码加减运算中,有时会遇到这样的情况:两个正数相加,而结果的符号位却为两个正数相加,而结果的符号位却为1 1(结果为负)(结果为负);两个负数相加,而结果的符号位却为两个负数相加,而结果的符号位却为0 0(结果为正)。(结果为正)。例例1 1
19、:设:设:X=1011B=11DX=1011B=11D,Y=111B=7D Y=111B=7D 则:则:XX补补=0,1011=0,1011,YY补补=0,0111=0,0111 有:有:0,1 0 1 1 0,1 0 1 1 +0,0 1 1 1+0,0 1 1 1 1,0 0 1 0 1,0 0 1 0 得出结果:得出结果:X+YX+Y补补=1,0010=1,0010,X+Y=-1110B=-14D X+Y=-1110B=-14D 两正数相加结果为两正数相加结果为-14D-14D,显然是错误的。,显然是错误的。第五章第五章 运算方法和运算器运算方法和运算器5.2 5.2 补码的溢出判断与检
20、测方法补码的溢出判断与检测方法1.1.溢出的产生溢出的产生 在补码加减运算中,有时会遇到这样的情况:在补码加减运算中,有时会遇到这样的情况:两个正数相加,而结果的符号位却为两个正数相加,而结果的符号位却为1 1(结果为负)(结果为负);两个负数相加,而结果的符号位却为两个负数相加,而结果的符号位却为0 0(结果为正)(结果为正)。例例2 2:设:设:X=-1011B=-11DX=-1011B=-11D,Y=-111B=-7D Y=-111B=-7D 则:则:XX补补=1,0101 Y=1,0101 Y补补=1,1001=1,1001 有:有:1,0 1 0 1 1,0 1 0 1 +1,1 0
21、 0 1+1,1 0 0 1 0,1 1 1 0 0,1 1 1 0 得出结果:得出结果:X+YX+Y补补=0,1110=0,1110,X+Y=1110B=14D X+Y=1110B=14D 两负数相加结果为两负数相加结果为14D14D,显然也是错误的。,显然也是错误的。原因:原因:在于两数相加之和的数值已在于两数相加之和的数值已超过了超过了机器允许的表示范围。机器允许的表示范围。F字长为字长为n+1n+1位位的的定点整数定点整数(其中一位为符号位),采用(其中一位为符号位),采用补码补码表示:表示:当运算结果大于当运算结果大于2 2n n-1-1 或小于或小于-2-2n n时,就产生溢出。时
22、,就产生溢出。F设参加运算的两数为设参加运算的两数为X X、Y Y,做加法运算。做加法运算。若若X X、Y Y异号,不会溢出。异号,不会溢出。若若X X、Y Y同号,运算结果为正且大于所能表示的最大正数或运算结果为同号,运算结果为正且大于所能表示的最大正数或运算结果为负且小于所能表示的最小负数负且小于所能表示的最小负数 (绝对值最大的负数)时,产生溢出。(绝对值最大的负数)时,产生溢出。F溢出分为溢出分为2 2种:种:正溢正溢和和负溢负溢。第五章第五章 运算方法和运算器运算方法和运算器5.2 5.2 补码的溢出判断与检测方法补码的溢出判断与检测方法1.1.溢出的产生溢出的产生 在补码加减运算中
23、,有时会遇到这样的情况:在补码加减运算中,有时会遇到这样的情况:两个正数相加,而结果的符号位却为两个正数相加,而结果的符号位却为1 1(结果为负)(结果为负);两个负数相加,而结果的符号位却为两个负数相加,而结果的符号位却为0 0(结果为正)。(结果为正)。第五章第五章 运算方法和运算器运算方法和运算器5.2 5.2 补码的溢出判断与检测方法补码的溢出判断与检测方法 2.2.溢出检测方法溢出检测方法 采用一个符号位判断采用一个符号位判断采用一个符号位采用一个符号位加法运算加法运算时检测溢出的方法:时检测溢出的方法:两正数相加,结果为负表明产生正溢;即当两正数相加,结果为负表明产生正溢;即当Xs
24、=Xs=YsYs=0=0,Ss=1Ss=1时,产生正溢。时,产生正溢。两负数相加,结果为正表明产生负溢。即当两负数相加,结果为正表明产生负溢。即当Xs=Xs=YsYs=1=1,Ss=0Ss=0时,产生负溢。时,产生负溢。因此可得出加法运算时因此可得出加法运算时溢出的判断条件为:溢出的判断条件为:溢出溢出=XsYsSs+XsYsSsXsYsSs+XsYsSs采用一个符号位采用一个符号位减法运算减法运算时检测溢出的方法:时检测溢出的方法:两数相减,只有两数相减,只有X,YX,Y异号时才可能溢出;异号时才可能溢出;因此可得出减法运算时因此可得出减法运算时溢出的判断条件为:溢出的判断条件为:溢出溢出=
25、XsYsSs+XsYsSsXsYsSs+XsYsSs第五章第五章 运算方法和运算器运算方法和运算器5.2 5.2 补码的溢出判断与检测方法补码的溢出判断与检测方法 2.2.溢出检测方法溢出检测方法 采用进位位判断采用进位位判断两正数相加,当最高有效位产生进位(两正数相加,当最高有效位产生进位(C C1 1=1=1)而符号位不产生进位而符号位不产生进位(Cs=0Cs=0)时,发生正溢;时,发生正溢;两负数相加,当最高有效位没有进位(两负数相加,当最高有效位没有进位(C C1 1=0=0)而符号位产生进位而符号位产生进位(Cs=1Cs=1)时,发生负溢。时,发生负溢。溢出的判断条件为:溢出的判断条
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第五 运算 方法 运算器
限制150内