运算方法和运算器PPT课件

上传人:壹****1 文档编号:591564117 上传时间:2024-09-18 格式:PPT 页数:106 大小:1.63MB
返回 下载 相关 举报
运算方法和运算器PPT课件_第1页
第1页 / 共106页
运算方法和运算器PPT课件_第2页
第2页 / 共106页
运算方法和运算器PPT课件_第3页
第3页 / 共106页
运算方法和运算器PPT课件_第4页
第4页 / 共106页
运算方法和运算器PPT课件_第5页
第5页 / 共106页
点击查看更多>>
资源描述

《运算方法和运算器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补补,包括符号位在内,各位取反,末位

5、加,包括符号位在内,各位取反,末位加1 1。-Y-Y补补被称为被称为YY补补的机器负数,由的机器负数,由YY补补求求-Y-Y补补的过程称为对的过程称为对YY补补变补(求补)变补(求补),补码补码: : 一个负数由原码表示转换成补码表示时一个负数由原码表示转换成补码表示时 符号位是不变的,仅对数值符号位是不变的,仅对数值位的各位变反,末尾加位的各位变反,末尾加“1”“1”。变补变补: :则不论这个数的真值是正是负则不论这个数的真值是正是负, , 一律连同符号位一起变反,末尾加一律连同符号位一起变反,末尾加1 1。YY补补表示的真值如果是正数,则变补后表示的真值如果是正数,则变补后-Y-Y补补所表

6、示真值变为负数,反之亦然所表示真值变为负数,反之亦然 。 例如:例如:YY补补= 1.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 0

7、0.1101+Y+Y补补 00.1001 00.1001X+YX+Y补补 0 01 1.0110.0110第五章 运算方法和运算器例例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.01

8、01+-Y+-Y补补 00.1001 00.1001X-YX-Y补补 0000.1110.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.

9、1011 00.1011+-Y+-Y补补 11.0111 11.0111X-YX-Y补补 100100.0010.0010X+Y= X+Y= 溢出溢出 两符号位相同,无溢出两符号位相同,无溢出 第五章 运算方法和运算器例例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

10、11.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= 溢出溢出 两符号位相同,无溢出两符号位相同,无溢出 第五章 运算方法和运算器总结:总结:1.1.用模用模4 4补码进行加法运算,结果的两符号位补码进行加法运算,结果的两符号位 相异时,表示溢出;相异时,表示溢出;0101正溢出、正溢出、10 10 负溢出;负溢出; 相同时,表示不溢出相同时,表示不溢出补补码码相相加加的的结结果果,不不

11、论论溢溢出出与与否否,第第一一符符号号位位始始终终指指示正确的符号示正确的符号建议:以模建议:以模4 4补码做习题补码做习题! ! 第五章 运算方法和运算器练习:练习: 求求XY=?XY=? X+Y=-0.0011 X-Y X+Y=-0.0011 X-Y 溢出溢出2. 2. X+Y=0.0111 X-Y X+Y=0.0111 X-Y 溢出溢出3. 3. X+Y X+Y 溢出溢出 第五章 运算方法和运算器三、反码加减法运算三、反码加减法运算 1 1、反码加减运算规则、反码加减运算规则 参加运算的两个操作数均用反码表示;参加运算的两个操作数均用反码表示; 符号位作为数的一部分参加运算;符号位作为数

12、的一部分参加运算; 若做加法,则两数直接相加;若做加法,则两数直接相加;X反反+Y反反=X+Y反反 若做减法,则将被减数与连同符号位一起变反后的减数相加;若做减法,则将被减数与连同符号位一起变反后的减数相加; X反反+-Y反反= X-Y反反 运算时如果符号位产生进位运算时如果符号位产生进位, ,则在末位加则在末位加1,1,成为循环进位成为循环进位; ; 运算结果用补码表示。运算结果用补码表示。对于补码:对于补码: XX补补 00.1101 00.1101 +Y+Y补补 11.1110 11.1110X+YX+Y补补 100100.1011.1011去掉正确去掉正确第五章 运算方法和运算器三、反

13、码加减法运算三、反码加减法运算 2 2、说明:说明:反反码码加加法法,规规则则同同补补码码加加法法,但但若若符符号号位位有有进进位位,需将此进位加到末位需将此进位加到末位循环进位循环进位 由由YY反反如何求如何求-Y-Y反反?对对YY反反,包括符号位,各位求反。,包括符号位,各位求反。 第五章 运算方法和运算器例例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反反XX反反 00.1101 00.1101 +Y+Y反反 11

14、.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.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反反XX反反 00.1011 00.1011 +Y+Y反反 11.1010 11.1010X+YX+Y反

15、反 1 10000.0101.01011 10000.0110.0110XX反反 00.1011 00.1011 +-Y+-Y反反 00.0101 00.0101X-YX-Y反反 0101.0000.0000X-Y= X-Y= 溢出溢出第五章 运算方法和运算器练习:练习:1 1、 用反码规则求用反码规则求XY=XY=?解解: :XX反反11.0011 Y11.0011 Y反反11.1101 -Y11.1101 -Y反反XX反反 11.0011 11.0011 +Y+Y反反 11.1101 11.11011 11111.0001.0001XX反反 11.0011 11.0011 +-Y+-Y反反

16、 00.0010 00.0010X-YX-Y反反 1111.0101.0101X+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反反XX反反 11.0010 11.0010 +Y+Y反反 00.0110 00.0110XX反反 11.0010 11.0010 +-Y+-Y反反 11.1001 11.1001X-YX-Y反反 1 11010

17、.1011.1011X-Y= X-Y= 溢出溢出X+YX+Y反反 1111.1000.1000第五章第五章 运算方法和运算器运算方法和运算器5.2 5.2 补码的溢出判断与检测方法补码的溢出判断与检测方法 在补码加减运算中,有时会遇到这样的情况:在补码加减运算中,有时会遇到这样的情况:两个正数相加,而结果的符号位却为两个正数相加,而结果的符号位却为1 1(结果为负)(结果为负); ;两个负数相加,而结果的符号位却为两个负数相加,而结果的符号位却为0 0(结果为正)。(结果为正)。 例例1 1: 设:设:X=1011B=11DX=1011B=11D,Y=111B=7D Y=111B=7D 则:则

18、: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 补码的溢出判断与检测方法补码的溢出判断与检测方法 在补码加减运算中,有时会遇到这样的情况:在补码加减运算中,有

19、时会遇到这样的情况:两个正数相加,而结果的符号位却为两个正数相加,而结果的符号位却为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 0 1+ 1,1 0 0 1 0,1 1 1 0 0,1 1 1 0 得出结果:得出结果:X+YX+Y补

20、补=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时,就产生溢出。时,就产生溢出。F设参加运算的两数为设参加运算的两数为X X、Y Y,做加法运算。做加法运算。 若若

21、X X、Y Y异号,不会溢出。异号,不会溢出。 若若X X、Y Y同号,运算结果为正且大于所能表示的最大正数或运算结果为同号,运算结果为正且大于所能表示的最大正数或运算结果为负且小于所能表示的最小负数负且小于所能表示的最小负数 (绝对值最大的负数)时,产生溢出。(绝对值最大的负数)时,产生溢出。 F溢出分为溢出分为2 2种:种:正溢正溢和和负溢负溢。第五章第五章 运算方法和运算器运算方法和运算器5.2 5.2 补码的溢出判断与检测方法补码的溢出判断与检测方法 在补码加减运算中,有时会遇到这样的情况:在补码加减运算中,有时会遇到这样的情况:两个正数相加,而结果的符号位却为两个正数相加,而结果的符

22、号位却为1 1(结果为负)(结果为负); ;两个负数相加,而结果的符号位却为两个负数相加,而结果的符号位却为0 0(结果为正)。(结果为正)。 第五章第五章 运算方法和运算器运算方法和运算器5.2 5.2 补码的溢出判断与检测方法补码的溢出判断与检测方法 2. 2. 溢出检测方法溢出检测方法 采用一个符号位判断采用一个符号位判断采用一个符号位采用一个符号位加法运算加法运算时检测溢出的方法:时检测溢出的方法:两正数相加,结果为负表明产生正溢;即当两正数相加,结果为负表明产生正溢;即当Xs=Xs=YsYs=0=0,Ss=1Ss=1时,产生正溢。时,产生正溢。 两负数相加,结果为正表明产生负溢。即当

23、两负数相加,结果为正表明产生负溢。即当Xs=Xs=YsYs=1=1,Ss=0Ss=0时,产生负溢。时,产生负溢。 因此可得出加法运算时因此可得出加法运算时溢出的判断条件为:溢出的判断条件为:溢出溢出= =XsYsSs+XsYsSsXsYsSs+XsYsSs采用一个符号位采用一个符号位减法运算减法运算时检测溢出的方法:时检测溢出的方法:两数相减,只有两数相减,只有X,YX,Y异号时才可能溢出;异号时才可能溢出; 因此可得出减法运算时因此可得出减法运算时溢出的判断条件为:溢出的判断条件为:溢出溢出= =XsYsSs+XsYsSsXsYsSs+XsYsSs第五章第五章 运算方法和运算器运算方法和运算

24、器5.2 5.2 补码的溢出判断与检测方法补码的溢出判断与检测方法 2. 2. 溢出检测方法溢出检测方法 采用进位位判断采用进位位判断两正数相加,当最高有效位产生进位(两正数相加,当最高有效位产生进位(C C1 1=1=1)而符号位不产生进位而符号位不产生进位(Cs=0Cs=0)时,发生正溢;时,发生正溢;两负数相加,当最高有效位没有进位(两负数相加,当最高有效位没有进位(C C1 1=0=0)而符号位产生进位而符号位产生进位(Cs=1Cs=1)时,发生负溢。时,发生负溢。 溢出的判断条件为:溢出的判断条件为:溢出溢出= =CsCCsC1 1+CsC+CsC1 1=CsC=CsC1 1 例例1

25、 1: 设:设: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 C1=1C1=1Cs=0Cs=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

26、 0 1 1, 0 1 0 1 + 1, 1 0 0 1+ 1, 1 0 0 1 0, 1 1 1 0 0, 1 1 1 0 C1=0C1=0Cs=1Cs=1第五章第五章 运算方法和运算器运算方法和运算器5.2 5.2 补码的溢出判断与检测方法补码的溢出判断与检测方法 2. 2. 溢出检测方法溢出检测方法 采用变形补码采用变形补码( (双符号位补码双符号位补码) )判断判断变形补码定义:变形补码定义:小数小数“变形补码变形补码”的定义为:的定义为: XX补补 = =整数整数“变形补码变形补码”的定义为:的定义为: XX补补 = = (设字长为:(设字长为:n+1n+1位)位)变形补码的变形补码

27、的性质:性质:(1)(1)当当-1-1X1X0x 0)故进行算术移位时,出现的空位均添补故进行算术移位时,出现的空位均添补0 0。正数:左移、右移都补正数:左移、右移都补0 0 x x原原=0.1001 2x=0.1001 2x原原 x x反反=0.0011 1/2x=0.0011 1/2x反反 x x补补=0.1001 2x=0.1001 2x补补第五章 运算方法和运算器 负数负数原码原码除符号位外,原码的数值部分与真值相同,故移位后都补除符号位外,原码的数值部分与真值相同,故移位后都补0 0。xx原原=1.0111 2x=1.0111 2x原原=1.1110 1/2x=1.1110 1/2

28、x原原反码反码除符号位外除符号位外, ,反码的数值部分与原码相反反码的数值部分与原码相反, ,故移位后都补故移位后都补1 1xx反反=1.0111 2x=1.0111 2x反反=1.1111 1/2x=1.1111 1/2x反反第五章运算方法和运算器补码补码xx补补=1.=1.1001001 1 x x原原1 1 x x反反=1.=1.1001000 0 xx补补=1.=1.01101110001000 x x原原10001000 x x反反=1.=1.01101101110111xx补补=1.=1.11000110001010 x x原原1010 x x反反=1.=1.11000011000

29、01 1分析发现:分析发现:补码由低位向高位出现第一个补码由低位向高位出现第一个“1”“1”的左边各位与反码同,从的左边各位与反码同,从“1”“1”开始开始的右边各位与原码同。的右边各位与原码同。补码补码规则规则(负数)(负数): 左移:补左移:补0 0,同原码,同原码 右移:补右移:补1 1,同反码,同反码 注意:注意:左移时,当数值最高位为:原码(左移时,当数值最高位为:原码(1 1)、反码和补码()、反码和补码(0 0)时,结果溢出;)时,结果溢出;右移时,当数值最低位为:原码(右移时,当数值最低位为:原码(1 1)和补码()和补码(1 1)、反码()、反码(0 0)时,结果)时,结果不

30、会溢出,但是数值变小;不会溢出,但是数值变小;第五章运算方法和运算器移位功能的实现移位功能的实现注意:上图为第注意:上图为第i i位的一位逻辑电路位的一位逻辑电路左移时,相当于乘以左移时,相当于乘以2,2,控制信号控制信号2 2F FL L有效有效右移时,相当于除以右移时,相当于除以2,2,控制信号控制信号2/2/F FL L有效有效不移位时不移位时, ,控制信号控制信号F FL L有效有效& 1&LiF/2LFL2FLFi+1Fi-1Fi第五章 运算方法和运算器、带符号数的舍入操作、带符号数的舍入操作在在算算术术移移位位时时,由由于于硬硬件件的的限限制制,会会失失去去一一定定的的位位数数,造

31、造成一些误差,为减小误差,就要进行舍入操作。成一些误差,为减小误差,就要进行舍入操作。1.1.恒舍(切断)恒舍(切断):保留保留p p位位 多余多余q q位位全部舍去全部舍去2.2.冯冯 诺依曼舍入法诺依曼舍入法(末位恒置(末位恒置1 1)3.3.0 0舍舍1 1入法入法4.4.ROMROM舍入法舍入法(查表法,(查表法,P104P104) p位 1 1q位p位q位p位1 1 q位p位0 0 q位第五章 运算方法和运算器5.4 5.4 基本运算的实现基本运算的实现 一、一、 加法器加法器 计计算算机机中中最最基基本本的的运运算算部部件件是是加加法法器器。通通常常,加加法法器器再再配配以以其其他

32、他必必要要的的逻逻辑电路就可以进行计算机中的一些基本运算。辑电路就可以进行计算机中的一些基本运算。 三个输入量三个输入量:操作数:操作数A Ai i和和B Bi i、低位传来的进、低位传来的进 位位C Ci-1i-1,两个输出量两个输出量:本位和:本位和S Si i、向高位的进位、向高位的进位C Ci i。 A Ai iB Bi iC Ci-1i-1S Si iC Ci i0000000110010100110110010101011100111111全加器的逻辑表达式为全加器的逻辑表达式为: : S Si i=A=Ai iBBi iCCi-1i-1 C Ci i=A=Ai iB Bi i +

33、(A +(Ai iBBi i)C)Ci-1i-1 第五章 运算方法和运算器5.4 5.4 基本运算的实现基本运算的实现 一、一、 加法器加法器 在在串串行行加加法法器器中中,只只有有一一个个全全加加器器,数数据据逐逐位位串串行行送送加加法法器器进进行行运运算算。如果操作数长如果操作数长n n 位,加法就要分位,加法就要分n n次进行,每次只能产生一位和。次进行,每次只能产生一位和。串串行行运运算算器器特特点点:所所用用元元器器件件少少(一一位位全全加加器器),但但速速度度极极低低,因因此此,现在用的不多,现在广泛使用的是并行运算器。现在用的不多,现在广泛使用的是并行运算器。 第五章 运算方法和

34、运算器5.4 5.4 基本运算的实现基本运算的实现 一、一、 加法器加法器 其其位位数数的的多多少少取取决决于于机机器器的的字字长,数据的各位同时运算。长,数据的各位同时运算。并并行行加加法法器器特特点点:虽虽然然操操作作数数的的各各位位是是同同时时提提供供的的,但但低低位位运运算算所所产产生生的的进进位位有有可可能能会会影影响响高高位位的的运运算算结结果果。 也也可可以以说说并并行行加加法法器器的的最最长长运运算算时时间间主主要要是是由由进进位位信信号号的的传传递递时时间间决决定定的的。提提高高并并行行加加法法器器速速度度的的关关键键是是尽尽量量加加快进位产生和传递的速度快进位产生和传递的速

35、度。补码加减运算器如下图补码加减运算器如下图第五章 运算方法和运算器5.4 5.4 基本运算的实现基本运算的实现 二、并行加法器进位的产生和传递二、并行加法器进位的产生和传递并行加法器的位数并行加法器的位数: :取决于机器的字长取决于机器的字长, ,和操作数的位数相同和操作数的位数相同; ;并行加法器的速度:并行加法器的速度:并行加法器的最长运算时间主要是由进位并行加法器的最长运算时间主要是由进位信号的传递时间决定的。提高并行加法器速度的关键是尽量加信号的传递时间决定的。提高并行加法器速度的关键是尽量加快进位产生和传递的速度。快进位产生和传递的速度。进位链:进位链:各级各级进位间存在一个由低位

36、向高位的传递关系进位间存在一个由低位向高位的传递关系,这种,这种进位信号的传递结构进位信号的传递结构进位链进位链。(各级进位信号,逐级串联。(各级进位信号,逐级串联成一条链)成一条链)1).1).全加器的函数表达式全加器的函数表达式 S Si i = A = Ai i B Bi i C Ci-1i-1 C Ci i= A= Ai iB Bi i +(A +(Ai i+B+Bi i ) C ) Ci-1i-1 =G =Gi i+P+Pi iC Ci-1i-1 第五章 运算方法和运算器 C Ci i= = A Ai iB Bi i + +(A(Ai i+B+Bi i ) ) C Ci i1 1 =

37、 =G Gi i+ +P Pi iC Ci-1i-1 G Gi i=A=Ai iB Bi i 名称:名称:进位产生函数、本地进位、绝对进位进位产生函数、本地进位、绝对进位含义:含义:只有本位两输入全只有本位两输入全1 1时,才产生向高位的进位。时,才产生向高位的进位。(进位仅与本位有关,与低位无关)(进位仅与本位有关,与低位无关) P Pi i=A=Ai i+B+Bi i 名称:名称:进位传送函数、传送条件、跳跃条件进位传送函数、传送条件、跳跃条件含含义义:只只要要本本位位两两输输入入有有一一个个为为1 1时时,低低位位来来的的进进位位就能传送到高位。就能传送到高位。 第五章 运算方法和运算器

38、2). 2). 进位信号的传送进位信号的传送进位链进位链串行进位链(串行进位链(行波进位链行波进位链)进位逐级形成,每一级的进位直接依赖于前一级的进位进位逐级形成,每一级的进位直接依赖于前一级的进位 C C1 1=A=A1 1B B1 1+ +(A A1 1+B+B1 1)C C0 0 C C2 2=A=A2 2B B2 2+ +(A A2 2+B+B2 2)C C1 1 C C2 2要等要等C C1 1形成后才能产生形成后才能产生 C Cn n=A=An nB Bn n+ +(A An n+B+Bn n)C Cn-1n-1 C Cn n要等要等C Cn-1n-1形成后才能产生形成后才能产生

39、第五章 运算方法和运算器串串行行进进位位并并行行加加法法器器的的特特点点:电电路路较较节节省省,但但严严重影响着加法器的速度;重影响着加法器的速度;进位时间:进位时间:C Ci i= A= Ai iB Bi i + +(A Ai i+B+Bi i)C Ci-1i-1= = G Gi i + P+ Pi i C Ci-1i-1若若全全部部用用与与门门和和或或门门来来构构造造加加法法器器,每每级级门门延延迟迟为为1ty1ty,n n位位字字长长, 不不考考虑虑G Gi i 、 P Pi i的的形形成成时时间间, ,由由C C0 0产产生生后后到到C Cn n产产生生共共需需2nty2nty. .为

40、为什什么么?因因为为每每一级加法器的进位延迟时间是一级加法器的进位延迟时间是2ty2ty改进改进: 1 1)减少门的级数)减少门的级数 2 2)采用高速进位元件)采用高速进位元件 第五章 运算方法和运算器 并行进位链并行进位链( (理想进位链。理想进位链。) ) G Gi i=A=Ai iB Bi i P Pi i=A=Ai i+B+Bi i C C1 1=G=G1 1+P+P1 1C C0 0 C C2 2=G=G2 2+P+P2 2C C1 1=G=G2 2+P+P2 2G G1 1+P+P2 2P P1 1C C0 0 C C3 3=G=G3 3+P+P3 3C C2 2=G=G3 3+

41、P+P3 3G G2 2+P+P3 3P P2 2G G1 1+P+P3 3P P2 2P P1 1C C0 0 C C4 4=G=G4 4+P+P4 4C C3 3=G=G4 4+P+P4 4G G3 3+P+P4 4P P3 3G G2 2+P+P4 4P P3 3P P2 2G G1 1+P+P4 4P P3 3P P2 2P P1 1C C0 0 上上述述各各式式中中所所有有各各位位的的进进位位均均不不依依赖赖于于低低位位的的进进位位,各位的进位可以同时产生。各位的进位可以同时产生。第五章 运算方法和运算器 用与门和或门用与门和或门实现的并行进位链实现的并行进位链(CLA)CLA)电路

42、。每级电路。每级门延迟门延迟1ty1ty,从从C C0 0CCn n的最长延迟时间的最长延迟时间共需共需2ty2ty。第五章 运算方法和运算器C C0 0、G G、P P 形成后,最多只有两级门的延迟即可形形成后,最多只有两级门的延迟即可形成成CnCn,是速度最快的一种进位链。,是速度最快的一种进位链。 n n位字长位字长, C, Cn n产生共需产生共需2ty2ty. .但此方案但此方案C Cn n的逻辑表达的逻辑表达式会变得越来越长式会变得越来越长, ,这使得电路结构变得很复杂这使得电路结构变得很复杂, ,完全采用并行进位是不现实的,故称为完全采用并行进位是不现实的,故称为理想的进理想的进

43、位链。位链。优点:优点:速度快(速度快(各级进位信号几乎同时产生各级进位信号几乎同时产生) 缺点:缺点:位数增多,扇入系数太大,无法完全实现。位数增多,扇入系数太大,无法完全实现。 第五章 运算方法和运算器分组并行进位方式分组并行进位方式单单级级先先行行进进位位方方式式:将将n n位位加加法法分分组组,组组内内用用并并行行进进位位链链,组组间用串行间用串行进位链。进位链。 (组内并行,组间串行)(组内并行,组间串行)例例如如:利利用用4 4位位先先行行进进位位电电路路和和求求和和电电路路可可以以构构成成4 4位位的的先先行行进进位位加加法法器器。 则则1616位位加加法法器器,可可分分4 4组

44、组,4 4位位/ /组组就就可可用用4 4个个4 4位位的的先行进位加法器构成。如图:先行进位加法器构成。如图:P P103103图图5-65-6组内:并行进位,组内:并行进位,组间:串行进位组间:串行进位特特点点:这这种种方方案案,速速度度高高,但但线线路路相相对对串串行行进进位位复复 杂,成本高杂,成本高 。第五章 运算方法和运算器分组并行进位方式分组并行进位方式多级先行进位方式:多级先行进位方式: (组内并行,组间并行)(组内并行,组间并行)首先对第一组的最高进位位首先对第一组的最高进位位C C4 4有有: : C C4 4= =G G4 4+P+P4 4G G3 3+P+P4 4P P

45、3 3G G2 2+P+P4 4P P3 3P P2 2G G1 1+ +P P4 4P P3 3P P2 2P P1 1C C0 0 = =G G* *1 1+ +P P* *1 1C C0 0 同同理理: ( (P104P104 ) )对对第第二二组组, ,第第三三组组, ,第第四四组组的的最最高高进进位位位位C C8 8 、C C12 12 、 C C1616有有: :C C8 8=G=G2 2* *+P+P2 2* *C C4 4=G=G2 2* *+P+P2 2* *G G1 1* *+P+P2 2* *P P1 1* *C C0 0C C1212=G=G3 3* *+P+P3 3*

46、 *G G2 2+P+P3 3* *P P2 2* *G G1 1* *+P+P3 3* *P P2 2* *P P1 1* *C C0 0C C1616=G=G4 4* *+P+P4 4* *G G3 3* *+P+P4 4* *P P3 3* *G G2 2* *+P+P4 4* *P P3 3* *P P2 2* *G G1 1* *+P+P4 4* *P P3 3* *P P2 2* *P P1 1* *C C0 0第五章 运算方法和运算器G G* *i i 、 T T* *i i如何形成?如何形成?G G* *1 1= G= G4 4+P+P4 4G G3 3+P+P4 4P P3

47、3G G2 2+P+P4 4P P3 3P P2 2G G1 1P P* *1 1=P=P4 4P P3 3P P2 2P P1 1第五章 运算方法和运算器*5.5.补码加减法运算器(补码加减法运算器(P105P105)第五章 运算方法和运算器第五章 运算方法和运算器补码加法:补码加法:XFXF、YFYF、FXFX、CPCPX XY寄存器寄存器X寄存器寄存器加法器加法器XFYFFXCPXCPX第五章 运算方法和运算器补码减法:补码减法:XFXF、YFYF、1F1F、FXFX、CPCPX XY寄存器寄存器X寄存器寄存器加法器加法器FXCPXCPXXFYF1F第五章 运算方法和运算器5.5 5.5

48、 定点乘法运算定点乘法运算乘法运算是计算机中常用的运算,过去的计算机中,乘法运算是计算机中常用的运算,过去的计算机中,没有专门的乘法器。乘法运算要靠软件编程来实现。没有专门的乘法器。乘法运算要靠软件编程来实现。但现在随着但现在随着LSILSI和和VLSIVLSI应用的普及以及价格的下降,应用的普及以及价格的下降,乘法运算已做成了标准部件乘法运算已做成了标准部件乘法器。乘法器。 硬件实现:速度快,成本高硬件实现:速度快,成本高 软件实现:速度低,成本低软件实现:速度低,成本低乘法乘法实现原理一样实现原理一样一般来讲,做乘除法运算,用原码比用补码简单,一般来讲,做乘除法运算,用原码比用补码简单,但

49、有的机器,数据是用补码表示的,为避免码制间但有的机器,数据是用补码表示的,为避免码制间的频繁转换,乘除也用补码来做。的频繁转换,乘除也用补码来做。乘法乘法第五章第五章 运算方法和运算器运算方法和运算器重点难点重点难点原码乘法原码乘法一、原码一位乘一、原码一位乘用用原原码码运运算算,数数据据的的符符号号不不能能同同数数值值位位一一同同参参加加运运算算,而而需需单单独独处处理理,两两原原码码表表示示的的数数相相乘乘,其其结结果果的的符符号号是两数符号的是两数符号的异或异或。0.1101 (0.1101 (- - 0.1011) =? 0.1011) =? Ps=x Ps=xs s y ys s =

50、1=1原码运算符号位要原码运算符号位要单独处理单独处理第五章第五章 运算方法和运算器运算方法和运算器手算乘法:手算乘法: 0.1101 (0.1101 (- - 0.1101 0.1101 部分积部分积 0.1101 0.1101 部分积部分积 0.0000 0.0000 部分积部分积 0.1101 0.1101 部分积部分积 0.10001111 0.10001111 乘积乘积于是,想改进上述方法,达到以下目的:于是,想改进上述方法,达到以下目的: n n位乘法,只用位乘法,只用n n位加法器位加法器 n n位乘法,只用位乘法,只用n n位寄存器来存放结果位寄存器来存放结果 可以看出:手算乘

51、法是通过可以看出:手算乘法是通过移移位位和和加法加法来实现的。来实现的。缺点:缺点: n n位乘法,需位乘法,需n n个部分积相个部分积相加得乘积,而加得乘积,而全加器只有三个全加器只有三个输入端输入端,故实现不了。,故实现不了。 n n位乘法,乘积位乘法,乘积2n2n位,要用位,要用2n2n位的寄存器来存放积位的寄存器来存放积,造成,造成浪费浪费. .第五章第五章 运算方法和运算器运算方法和运算器原码一位乘法的规则:原码一位乘法的规则: 参加运算的操作数取其绝对值参加运算的操作数取其绝对值; ; 令乘数的最低位为判断位,若为令乘数的最低位为判断位,若为“1”1”,加被乘数,加被乘数,若为若为

52、“0”0”,不加被乘数,不加被乘数( (加加0)0); 累加后的部分积以及乘数右移一位;累加后的部分积以及乘数右移一位; 重复重复n n次次和和操作;(直到乘数位操作;(直到乘数位全部乘完全部乘完为止)为止) 符号位单独处理,同号为正,异号为负;符号位单独处理,同号为正,异号为负;乘法运算需要三个寄存器:乘法运算需要三个寄存器:A A寄存器:部分积与最后乘积的高位部分,初值为寄存器:部分积与最后乘积的高位部分,初值为0;0; B B寄存器:被乘数寄存器:被乘数X;X; C C寄存器:乘数寄存器:乘数Y Y,运算后运算后C C寄存器中不再需要保留乘数,寄存器中不再需要保留乘数,改为存放乘积的低位

53、部分;改为存放乘积的低位部分;n n次加法,次加法, n n次移位次移位第五章第五章 运算方法和运算器运算方法和运算器原码一位乘举例原码一位乘举例部分积部分积A 乘数乘数C00.00001011 被乘数被乘数+ 00.110100.1101101100.01101101+ 00.110101.0011110100.10011110+ 00.000000.1001111000.01001111+ 00.110101.0001111100.10001111A+B2-1 (A+B), 2-1 C结果:结果:A积的高位积的高位 C积的低位积的低位n位加法器位加法器n位寄存器位寄存器n位数乘法位数乘法x

54、y原原1.10001111xy判断判断判断判断判断判断判断判断加法加法右移右移加法加法加法加法加法加法右移右移右移右移右移右移练习:练习:仿照计算机的计算过程,用原码仿照计算机的计算过程,用原码计算和两个定点小数的乘积。计算和两个定点小数的乘积。练习:练习:仿照计算机的计算过程,用原码码计算和两个定点小数的成绩。仿照计算机的计算过程,用原码码计算和两个定点小数的成绩。 部分积部分积A A 乘数乘数C C 被乘数被乘数(乘积的高位部分)(乘积的高位部分)(乘积的低位部分)(乘积的低位部分) 说明说明 00 0000 0 1 1 00 0000 0 1 1 1 1 起始情况起始情况 + +)00

55、1101 00 1101 乘数最低位为乘数最低位为1 1,加,加X X 00 1101 00 1101 00 0110 1 0 1 00 0110 1 0 1 1 1 1 1(丢失)(丢失) 右移部分积和乘数右移部分积和乘数 + +)00 1101 00 1101 乘数最低位为乘数最低位为1 1,加,加X X 01 0011 01 0011 00 1001 1 1 0 00 1001 1 1 0 1 1 1 1(丢失)(丢失) 右移部分积和乘数右移部分积和乘数 + +)00 1101 00 1101 乘数最低位为乘数最低位为1 1,加,加X X 01 0110 01 0110 00 1011

56、0 1 1 00 1011 0 1 1 0 0 1 1(丢失)(丢失) 右移部分积和乘数右移部分积和乘数 + +)00 0000 00 0000 乘数最低位为乘数最低位为0 0,加,加0 0 00 1011 00 1011 00 0101 1 0 1 1 0 00 0101 1 0 1 1 0(丢失)(丢失) 右移部分积和乘数右移部分积和乘数符号位为负,数值位为符号位为负,数值位为0101101101011011。二、原码一位乘流程图二、原码一位乘流程图三、原码一位乘法运算器框图三、原码一位乘法运算器框图第五章第五章 运算方法和运算器运算方法和运算器5.5.2 5.5.2 补码一位乘补码一位乘

57、用补码做加减运算很方便,做乘法(包括除法)却是原码很方用补码做加减运算很方便,做乘法(包括除法)却是原码很方便,既然这样为何又有补码乘法呢?主要为了避免频繁的码制便,既然这样为何又有补码乘法呢?主要为了避免频繁的码制转换。转换。被乘数被乘数x, xx, x补补x xs s.x.x1 1xxn n 乘数乘数y, yy, y补补y ys s.y.y1 1yyn ny y0 0.y.y1 1yyn n校正法校正法x x任意,任意,y0y0时,时,-同原码乘法同原码乘法, ,移位按补码规则进行,结果不用校正;移位按补码规则进行,结果不用校正; x x . . y y补补 xx补补. . yy补补x x

58、任意任意,y0y0时,时,-同原码乘法同原码乘法, ,移位按补码规则进行,结果需要校正;移位按补码规则进行,结果需要校正; x x. .yy补补 xx补补. .(0.(0.y y1 1y yn n ) )+-x+-x补补校正法统一表达式:校正法统一表达式: x.yx.y补补 = = xx补补. .(0.(0.y y1 1y yn n )+ )+ y ys s . .-x-x补补 P108P108第五章第五章 运算方法和运算器运算方法和运算器举例:X= -0.1101 即: X补 Y补 (- X)补求XY补部分积A乘数C00.0000+ 11.0011010111.001111.1001+ 00

59、.00001010 1(丢失)11.100111.1100+ 11.00111101 0 (丢失)10.111111.0111+ 00.00001110 1 (丢失)11.011111.1011+ 00.11011111 0 (丢失)00.1000 1111注意!?5.5.2 5.5.2 补码一位乘补码一位乘校正法校正法第五章第五章 运算方法和运算器运算方法和运算器校正5.5.2 5.5.2 补码一位乘补码一位乘比较法(比较法(BoothBooth乘法):乘法):( (适用情况:适用情况:x x,y y都任意都任意) )算法推导:算法推导:将将校正法统一表达式:校正法统一表达式: x.yx.y

60、补补 = = xx补补. .(0.(0.y y1 1y yn n )+ )+ y ys s . .-x-x补补展开,得到书展开,得到书中列出的递推关系:中列出的递推关系: Z Z0 0 补补=0=0 Z Z1 1 补补=2=2-1-1Z Z0 0 补补+(+(y yn+1n+1-y-yn n)x)x补补 Z Z2 2 补补=2=2-1-1Z Z1 1 补补+(+(y yn n-y-yn-1n-1)x)x补补 . . . . Z Zn n 补补=2=2-1-1Z Zn-1n-1 补补+(+(y y2 2-y-y1 1)x)x补补 从而得到:从而得到: xyxy补补=Z Zn n 补补+(+(y

61、y1 1-y-ys s) ). .xx补补-补码一位乘比较法补码一位乘比较法 其中:其中: Z Z0 0 补补为部分积,为部分积, Z Z1 1 补补Z Zn n 补补位各次求得的累加并右移之后的部分积。位各次求得的累加并右移之后的部分积。第五章第五章 运算方法和运算器运算方法和运算器补码一位乘补码一位乘注意事项注意事项比较法(比较法(BoothBooth算法):算法):( (适用情况:适用情况:x x,y y都任意都任意) )算法规则:算法规则: 相乘时,被乘数取相乘时,被乘数取双双符号位,乘数取符号位,乘数取单单符号位并参加运算。符号位并参加运算。 乘法开始前,乘法开始前,部分积置全部分积

62、置全0 0,乘数末位增加附加位乘数末位增加附加位y yn n1 1=0=0。 比较比较y yn n 和和y yn n1 1,决定如何运算决定如何运算 y yn n y yn n1 1 ( (y yi i1- 1- y yi i) )值值 操作操作 0 0 ; 0 0 0 ; 0 全全0 0,结果右移一位,结果右移一位; ; 0 1 ; 1 0 1 ; 1 xx补补,结果右移一位,结果右移一位; ; 1 0 ; -1 1 0 ; -1 -xx补补,结果右移一位,结果右移一位; ; 1 1 ; 0 1 1 ; 0 全全0 0,结果右移一位。,结果右移一位。 重复重复 n n1 1 次,最后一次不移

63、位次,最后一次不移位 得乘积得乘积 2 2n n2 2位,其中含两位符号位,其中含两位符号位位 补补码码一一位位乘乘举举例例例:例:x x-0.1011, -0.1011, y y-0.1101 -0.1101 求求 xyxy?(?(利用比较利用比较算法算法) )解:解:xx补补=11.0101,-x-x补补00.1011 00.1011 yy补补xyxy补补 比较比较y yn n 和和y yn n1 1,决定如何运算,决定如何运算 y yn n y yn n1 1 0 0 ;0 0 ;全全0 0,结果右移一位,结果右移一位; ; 0 1 ;0 1 ;xx补补,结果右移一位,结果右移一位; ;

64、 1 0 ;1 0 ;-x-x补补,结果右移一位,结果右移一位; ; 1 1 ;1 1 ;全全0 0,结果右移一位。,结果右移一位。 重复重复 n n1 1 次,最后一次不移次,最后一次不移位位 得乘积得乘积 2n 2n2 2位,其中含两位位,其中含两位符号位符号位 00.00001.0011 0+00.101100.10111.0011 0+00.000000.01011 1001 100.01011 1001 100.00101 1100 1+11.010111.011111 100 1 部分积部分积 乘数乘数 附加附加位位11.101111 110 0 +00.000011.101111

65、 110 0 11.110111 111 0 +00.101100.100011 111 0 判断判断判断判断判断判断判断判断加法加法右移右移加法加法加法加法加法加法右移右移右移右移右移右移判断判断加法加法不移位不移位练习: X补=0.1001 Y补=1.1011 求XY补 解:-X补 补码乘法运算过程如下:所以得 XY补 3.2.2 3.2.2 补码乘法补码乘法第五章第五章 运算方法和运算器运算方法和运算器3.2.2 3.2.2 补码乘法补码乘法 +) 1 1 0 1 1 1 +) 0 0 1 0 0 1 +) 1 1 0 1 1 11 1 1 1 0 11 1 1 0 1 01 1 1 1

66、 0 11 1 1 0 1 11 1 0 1 1 10 0 0 0 1 10 0 0 1 1 00 0 0 0 0 0右移一位右移一位, 得部分积得部分积Z1补补右移一位得右移一位得Z3补补右移一位得右移一位得Z4补补YnYn+1=10,+-X补补YnYn+1=11, +0 ,右移一位得右移一位得Z2补补YnYn+1=01,+X补补YnYn+1=10,+-X补补YnYn+1=11, +0 设部分积初值设部分积初值Z0=0,附加位,附加位Yn+1=0操作说明操作说明乘乘 数数B附加位附加位Yn+1部分积部分积A1 1 0 1 1 01 1 1 0 1 1 01 1 1 1 0 1 10 1 1

67、1 1 0 10 0 1 1 1 1 0低低 位位 积积高高 位位 积积补码乘法运算过程补码乘法运算过程第五章第五章 运算方法和运算器运算方法和运算器 +) 0 0 0 0 0 01 1 1 0 1 1 +) 0 0 0 0 0 01 1 1 1 0 10 0 1 1最后一步不移位最后一步不移位5.5.3 5.5.3 原码二位乘原码二位乘在原码一位乘中,是一位一拍来运算的,两个在原码一位乘中,是一位一拍来运算的,两个n n位数相乘,位数相乘,需进行需进行n n次加法,次加法,n n位移位。为提高乘法速度,进行二位一乘。位移位。为提高乘法速度,进行二位一乘。原码两位乘法和原码一位乘法一样,符号位

68、单独处理。乘数原码两位乘法和原码一位乘法一样,符号位单独处理。乘数的相邻两位的相邻两位Y Yn-1n-1 Y Yn n有四种状态,决定进行何种操作。有四种状态,决定进行何种操作。也可以也可以说把像原码一位乘一样把说把像原码一位乘一样把Y Yn-1n-1 Y Yn n看成一位则有看成一位则有: :前两种情况好处理,前两种情况好处理,2X2X可将可将X X左移一位,左移一位,+3X+3X实现起来较实现起来较难,如何处理?难,如何处理? 一般采取:一般采取:3X=4X-X3X=4X-XYn-1 Yn Yn-1 Yn 0000,相当于,相当于0X0X,部分积,部分积0 0,右移两位。,右移两位。Yn-

69、1 Yn Yn-1 Yn 0101,相当于,相当于1X1X,部分积,部分积X X,右移两位。,右移两位。Yn-1 Yn Yn-1 Yn 1010,相当于,相当于2X2X,部分积,部分积2X2X,右移两位。,右移两位。Yn-1 Yn Yn-1 Yn 1111,相当于,相当于3X3X,部分积,部分积3X3X,右移两位。,右移两位。第五章第五章 运算方法和运算器运算方法和运算器3X=4X-X, 3X=4X-X, 第第一一拍拍只只做做-X,-X,部部分分积积右右移移二二位位,并并用用一一个个记记账账触发器记下欠账,欠触发器记下欠账,欠4X,4X,下一拍再补上下一拍再补上4X4X即可。即可。本次累加本次

70、累加( (做做-X)-X)后部分积要右移两位,因而下一次实际上后部分积要右移两位,因而下一次实际上只需执行只需执行+X +X ,就等于完成了,就等于完成了+4X+4X操作,原因在于:从相对操作,原因在于:从相对关系来看,关系来看,部分积要右移两位后加部分积要右移两位后加X X,相当于相当于X X左移了两位左移了两位后变成了后变成了4X4X后后加加( (做做-X)-X)后的后的部分积部分积 。例如:部分积例如:部分积: :10111011 X: X:10101010部分积右移部分积右移2 2位后位后加加X X为:为:1011 +1010 110011X X左移两位后加部分积左移两位后加部分积为为

71、 1010 + 1011 110011第五章第五章 运算方法和运算器运算方法和运算器判断位判断位 y yn-1n-1y yn nC Cj j 所进行的操作所进行的操作 0 0 0 0 0 0 ; 全全0 0,部分积右移两位,部分积右移两位,C Cj j 0 0 0 0 1 0 0 1 ; x x, 部分积右移两位,部分积右移两位,C Cj j 0 0 0 1 0 0 1 0 ; x x, 部分积右移两位,部分积右移两位,C Cj j 0 0 0 1 1 0 1 1 ; 2x2x, 部分积右移两位,部分积右移两位,C Cj j 0 0 1 0 0 1 0 0 ; 2x2x, 部分积右移两位,部分

72、积右移两位,C Cj j 0 0 1 0 1 1 0 1 ; x x, 部分积右移两位,部分积右移两位,C Cj j 1 1 1 1 0 1 1 0 ; -x -x, 部分积右移两位,部分积右移两位,C Cj j 1 1 1 1 1 1 1 1 ; 全全0, 0, 部分积右移两位,部分积右移两位,C Cj j 1 1第五章第五章 运算方法和运算器运算方法和运算器原码二位乘规则:原码二位乘规则: 参加运算的操作数取其绝对值;参加运算的操作数取其绝对值; 符号位单独处理符号位单独处理PsPsXsYsXsYs; 欠帐触发器欠帐触发器CjCj初始值为初始值为0 0; 根据乘数的最低两位根据乘数的最低两

73、位Yn-1YnYn-1Yn和欠帐触发器和欠帐触发器CjCj的值决定每次应的值决定每次应执行的操作;执行的操作; -|X| -|X|通过通过+|X|+|X|变补实现,所以右移按补码规则进行。变补实现,所以右移按补码规则进行。 当乘数的数值位为当乘数的数值位为n n位(不连符号位),应作位(不连符号位),应作n/2n/2次累加和移次累加和移位,如有欠帐,再作一次加法。位,如有欠帐,再作一次加法。 第五章第五章 运算方法和运算器运算方法和运算器原码二位乘注意事项:原码二位乘注意事项: 符号位单独处理,符号位单独处理, Zs=Xs Ys Zs=Xs Ys 。 运算时,部分积取三位符号位,移位时,据最高

74、符号位的运算时,部分积取三位符号位,移位时,据最高符号位的指示进行。指示进行。 求求-x-x补补 ,实际是求,实际是求-|x|-|x|补补 。 乘数数值部分乘数数值部分 n n 位,位, n n为偶数时,乘数取二位符号位,共需做(为偶数时,乘数取二位符号位,共需做(n/2 +1n/2 +1)累加)累加和和n/2n/2移位,最后一次不移位;移位,最后一次不移位; n n为奇数时,乘数取一位符号位,共需做(为奇数时,乘数取一位符号位,共需做(n+1n+1)/2/2累加和累加和移位,最后一次只移一位;最后一次只移一位。移位,最后一次只移一位;最后一次只移一位。第五章第五章 运算方法和运算器运算方法和

75、运算器原码二位乘举例原码二位乘举例例例1 1:x x-0.1001, y-0.1001, y-0.1101 -0.1101 求求 xy xy? ?解:解:Zs=1 1 = 0,|x| -|x|-|x|补补部分积部分积A 乘数乘数B 被乘数被乘数C 000.1001C Cj j000.0000 00.1101 0+000.1001000.1001 00.1101 0+111.0111000.0010 01 0011 0111.1001 01 0011 1111.1110 01 0100 1+000.1001000.0111 01 0100 0 A+C4-1 (A+C), 4-1 Bxyxy原原=

76、 =0 0.01110101.01110101共做n/2+1=3次加,n/2=2次移位例例2 2:x=-0.11011, y=0.11111 x=-0.11011, y=0.11111 求求 xy=? xy=?解:解:Zs=1,2|x|=001.10110 =001.10110 -|x|-|x|补补 部分积部分积A 乘数乘数B 被乘数被乘数C 000.11011C Cj j000.00000 0.11111 0+111.00101111.00101 0.11111 1+000.00000111.11001 0 10111 1111.11001 0 10111 1111.111100 10101

77、 1+001.10110001.10100 01 0101 0 000.11010 00 101xyxy原原= =1 1.1101000101.1101000101原码二位乘举例原码二位乘举例共做(n+1)/2 =3次加, (n+1)/2 =3次移位,最后一次仅移一位原码两位乘问题原码两位乘问题原码两位乘,最后一次会不会欠帐?(原码两位乘,最后一次会不会欠帐?(c cj j1 1?) )因符号位单独处理,只数值部分参加运算,故乘数的符号位因符号位单独处理,只数值部分参加运算,故乘数的符号位为为0 0。两位符号位:两位符号位: 00.0 00.0 ; 00.1 00.1 ;一位符号位:一位符号位

78、: 全全0 0,部分积右移两位,部分积右移两位,0 0C Cj j x x, 部分积右移两位,部分积右移两位,0 0C Cj j0 0 ; ;全全0,0,部分积右移两位,部分积右移两位,0 0C Cj j 1 1 ; ;x x,部分积右移两位,部分积右移两位,0 0C Cj j0 0 ; ;x,x,部分积右移两位,部分积右移两位,0 0C Cj j 1 1 ; ;2x2x,部分积右移两位,部分积右移两位,0 0C Cj j无符号位:还清欠账,即最后一步若无符号位:还清欠账,即最后一步若C Cj j位上为位上为1 1,则应右移两,则应右移两位再加位再加x x完成计算;完成计算;练习练习 x x-

79、0.11101, y-0.11101, y-0.11101 -0.11101 求求 xy xy? ?解:解:z zs s=0,2|x|=001.11010 =001.11010 -|x|-|x|补补 部分积部分积A 乘数乘数B 被乘数被乘数C 000.11101C Cj j000.00000 0.11101 0+000.11101000.11101 0.11101 0+111.00011000.00111 0 10111 0111.01010 0 10111 1111.11010 1 00101 1+001.11010001.10100 1 00100 0 000.11010 0 1001xy

80、xy原原=0.=0.11010010011101001001补码两位乘补码两位乘补码两位乘法规则如下:补码两位乘法规则如下:( (推导公式见推导公式见P111)P111) 参加运算的数用补码表示;参加运算的数用补码表示; 符号位参加运算;符号位参加运算; 乘数最低位后增加一位附加位乘数最低位后增加一位附加位Yn+1Yn+1,初值为,初值为0 0; 根据乘数的最低三位根据乘数的最低三位Yn-1YnYn+1Yn-1YnYn+1的值决定每次应执行的操作;的值决定每次应执行的操作; 移位按补码右移规则进行。移位按补码右移规则进行。 Yn-1 Yn Yn+1Yn-1 Yn Yn+1 (Yn+1+Yn-2

81、Yn-1)(Yn+1+Yn-2Yn-1)值值 操作操作 0 0 0 0 +0 0 0 0 0 +0,右移,右移2 2位位 0 0 1 1 +X 0 0 1 1 +X补,右移补,右移2 2位位 0 1 0 1 +X 0 1 0 1 +X补,右移补,右移2 2位位 0 1 1 2 +2X 0 1 1 2 +2X补,右移补,右移2 2位位 1 0 0 -2 +2-X 1 0 0 -2 +2-X补,右移补,右移2 2位位 1 0 1 -1 +-X 1 0 1 -1 +-X补,右移补,右移2 2位位 1 1 0 -1 +-X 1 1 0 -1 +-X补,右移补,右移2 2位位 1 1 1 0 +0 1

82、1 1 0 +0, 右移右移2 2位位第五章第五章 运算方法和运算器运算方法和运算器第五章第五章 运算方法和运算器运算方法和运算器补码两位乘补码两位乘注意注意: :1 1、被乘数取三位符号位、被乘数取三位符号位2 2、乘数、乘数数值部分位数数值部分位数n n为为奇数奇数,乘数取一位符号位,乘数取一位符号位,共需做(共需做(n+1n+1)/2/2累加和移位,最后一次只移一位;累加和移位,最后一次只移一位; 3 3、乘数、乘数数值部分位数数值部分位数n n为为偶数偶数,乘数取二位符号位,乘数取二位符号位,共需做(共需做(n/2 +1n/2 +1)累加和)累加和n/2n/2移位,(最后一次不移位,(

83、最后一次不移位);(满足二位一移)移位);(满足二位一移)4 4、得积、得积2n+12n+1位,含位,含1 1位符号位。位符号位。补码两位乘举例补码两位乘举例(P112)(P112)例例1 1:x x , y , y- -0.0110010 0.0110010 求求 xy xy? ?解:解:x补补 -x-x补 yy补 部分积部分积A 乘数乘数B附加位附加位000.0000000 1.1001110 0111.0011010 1.1001110 0+111.0011010 ;2-x补补111.1100110 1 0110011 1 ;1/4z补补+000.0000000 ;0111.110011

84、0 1 0110011 1111.1111001 1 0101100 1;1/4z补补+000.0110011 ;+ x补补000.0101100 1 0101100 1000.0001011 0 0101011 0 ;1/4z补补补码两位乘举例补码两位乘举例例例1 1:x x , y , y- -0.0110010 0.0110010 求求 xy xy? ?部分积部分积A 乘数乘数B000.0001011 0 0101011 0111.1011000 0 0101011 0+111.1001101 ;-x补补111.1110110 0 0010101 1 ;1/2z补补x.y补补乘数位是奇数

85、位,取一位符号位,最后一次只移一位乘数位是奇数位,取一位符号位,最后一次只移一位 补码两位乘举例补码两位乘举例例例2 2:x x-, y-, y- -0.10001011 0.10001011 求求 xy xy? ?解:解:x补补 -x-x补 yy补部分积部分积A 乘数乘数B附加位附加位000.0000000011.01110101 0111.01100101 11.01110101 0+111.01100101 ;x补补111.11011001 01 11011101 0 ;1/4z补补+111.01100101 ; x补补111.00111110 01 11011101 0111.1100

86、1111 10 01110111 0 ;1/4z补补+000.10011011 ;+ -x补补000.01101010 10 01110111 0000.00011010 10 10011101 1 ;1/4z补补补码两位乘举例补码两位乘举例例例2 2:x x-, y-, y - -0.10001011 0.10001011 求求 xy xy? ?部分积部分积A 乘数乘数B000.00011010 10 10011101 1110.11100100 10 10011101 1+110.11001010 ;2x补补x.y补补乘法位是偶数位,取二位符号位,最后一步不移位乘法位是偶数位,取二位符号位

87、,最后一步不移位 111.10111001 00 10100111 0+000.10011011 ;-x补补000.01010100 00 10100111 0xyxy0.0.原码、补码乘法总结原码、补码乘法总结(P112P112)乘法类型乘法类型符号位符号位累加次数累加次数移位移位参与运算参与运算部分积部分积乘数乘数方向方向次数次数每次位数每次位数原码一位乘原码一位乘否否2 20 0n n右右n n1 1补码一位乘补码一位乘是是2 21 1n+1n+1右右n n1 1原码两位乘原码两位乘否否3 32 2(n n为偶数)为偶数)n/2+1n/2+1右右n/2n/22 21 1( n n为奇数)

88、为奇数)(n+1)/2(n+1)/2右右(n+1)/2(n+1)/22(2(最后一次最后一次移一位移一位) )补码两位乘补码两位乘是是3 32 2(n n为偶数)为偶数)n/2+1n/2+1右右n/2n/22 21 1( n n为奇数)为奇数)(n+1)/2(n+1)/2右右(n+1)/2(n+1)/22(2(最后一次最后一次移一位移一位) )注:注:n为乘数的数值部分的位数为乘数的数值部分的位数若若n,m分别为被乘数和乘数的数值位数,则不管怎么移分别为被乘数和乘数的数值位数,则不管怎么移位,最后满足:位,最后满足: 被乘数被乘数m位,乘数位,乘数n位,积位,积m+n位位 乘数的符号位必须去掉

89、乘数的符号位必须去掉 5.6 5.6 定点除法运算定点除法运算除法:除法: 溢出溢出定点除法定点除法按照处理按照处理方式方式按照数的按照数的表示方法表示方法同时,同时,| |除数除数| |不为不为0 05.6 5.6 定点除法运算定点除法运算一、原码除法一、原码除法 手算除法:手算除法: 上商:上商: 余数:余数:0.0100120.010012-5-50.10010.0.101010.11011110110.010010000100100 11011 0100100 110115.6 5.6 定点除法运算定点除法运算手算除法,可以用心算的办法比较余数和除数的大小,从手算除法,可以用心算的办法

90、比较余数和除数的大小,从而确定是商而确定是商0 0还是商还是商1 1,计算机则不行计算机则不行,它要,它要以减法以减法的方法的方法来比较。减的结果若大于来比较。减的结果若大于0 0,上商,上商1 1;若小于;若小于0 0,上商,上商0 0,然,然后将余数再恢复。后将余数再恢复。规则规则: : 将被除数除数,将被除数除数, 结果大于结果大于0 0,商,商1 1,余数左移一位。,余数左移一位。 结果小于结果小于0 0,商,商0 0,恢复余数,恢复余数,余数左移一位。余数左移一位。 重复上述操作,直至商的精度满足要求为止。重复上述操作,直至商的精度满足要求为止。本不该减,而将余数左移一位后再减,本不

91、该减,而将余数左移一位后再减,现在先做了减,故要恢复。现在先做了减,故要恢复。5.6 5.6 定点除法运算定点除法运算注意:注意:1.1.运算时取双符号位,第一符号位指示是否够减(结果大运算时取双符号位,第一符号位指示是否够减(结果大于于0 0),第一符号位为),第一符号位为0 0,表示够减,为,表示够减,为1 1,表示不够减。,表示不够减。2.2.求求-yy补补,实际是求,实际是求-|-|y|y|补补 。 3.3.符号位单独处理符号位单独处理:5.6 5.6 定点除法运算定点除法运算例:例:x=-0.10010 y=0.11011 x/y=?x=-0.10010 y=0.11011 x/y=

92、? |x|=0.10010 |y|=0.11011 |x|=0.10010 |y|=0.11011 -|y| 补补 |X|A |X|A,|Y|B|Y|B,0C0C+ 11.00101 + 11.00101 ;|y|y| 0 0 ;判断:;判断:r0 r0 r0 上商上商 1 1 01010 0 ;2r (2r (左移左移) )+ 11.00101 + 11.00101 ;- y- y010010 ;判断:;判断: r0 r0 r0 ,上商,上商 1 1 00.10010 0. 00.10010 0.010101010 0 ;2r(2r(左移左移) )+ 11.00101 + 11.00101

93、;- y- y11.10111 0.11.10111 0.0101001010 ;判断:;判断:r0 r0 r0 ,上商,上商 1 1+ 11.00101 + 11.00101 ;- y- y商商=0.10101 =0.10101 商商 原原=1.10101 =1.10101 x/y=-0.10101 x/y=-0.10101 余余=0.010012=0.010012-5 -5 =0.10012=0.10012-6-6 5.6 5.6 定点除法运算定点除法运算从上例可以看出:从上例可以看出:当当r ri i 0 0时,每次上商得到的余数,是前一次的余数左移时,每次上商得到的余数,是前一次的余数

94、左移一位再减除数得到的,即:一位再减除数得到的,即: 当当r ri i 0 0时,时,r ri i1 1=2r=2ri i-y-y。而当而当r ri i 0 0时,下次的余数是本次余数加除数,左移一位,时,下次的余数是本次余数加除数,左移一位,再减除数,即:再减除数,即: 当当r ri i 0 0时,时, r ri i1 1=2(r=2(ri i+y)-y=2r+y)-y=2ri i+y +y 由此可知由此可知: :当当r0r0时,可以不恢复余数,而将上次余数左时,可以不恢复余数,而将上次余数左移一位,再加上除数,得到余数,这就是移一位,再加上除数,得到余数,这就是不恢复余数法,不恢复余数法,

95、也叫加减交替法,也叫加减交替法,。它是恢复余数法的一种改进算法。它是恢复余数法的一种改进算法。 5.6 5.6 定点除法运算定点除法运算 规则:规则:被除数被除数减减除数,得余数除数,得余数余数为余数为正正时,上商时,上商1 1,余数左移一位,余数左移一位,减减除数除数余数为余数为负负时,上商时,上商0 0,余数左移一位,余数左移一位,加加除数除数重复上述操作,直至商的精度满足要求为止。重复上述操作,直至商的精度满足要求为止。当最后一次余数为负数时,要恢复余数,直至余数为正。当最后一次余数为负数时,要恢复余数,直至余数为正。注:注:仍然取双符号位,第一符号位作为余数的数符。仍然取双符号位,第一

96、符号位作为余数的数符。 例例1 1:已知:已知:X=0.10101X=0.10101,Y=-0.11110Y=-0.11110,求:,求:X/YX/Y。解:解:|X|=0.10101A|X|=0.10101A,|Y|=0.11110B|Y|=0.11110B,0C 0C |Y| |Y|变补变补=1.00010 =1.00010 经过原码加减交替除法,有:商,余数经过原码加减交替除法,有:商,余数=0.01100* 2=0.01100* 2-5-5 A C A C 说明说明 0 0.1 0 1 0 1 0.0 0 0 0 0 0 0.1 0 1 0 1 0.0 0 0 0 0+|Y|+|Y|变补

97、变补 1 1.0 0 0 1 0 1 1.0 0 0 1 0 -|Y| -|Y| 1 1.1 0 1 1 1 0.0 0 0 0 1 1.1 0 1 1 1 0.0 0 0 0 0 0 余数为负,商余数为负,商0 0 1 1.0 1 1 1 0 1 1.0 1 1 1 0 左移一位左移一位+|Y| 0 0.1 1 1 1 0 +|Y| 0 0.1 1 1 1 0 +|Y| +|Y| 0 0.0 1 1 0 0 0.0 0 0 0 0.0 1 1 0 0 0.0 0 0 0 1 0 1 余数为正,商余数为正,商1 1 0 0.1 1 0 0 0 0 0.1 1 0 0 0 左移一位左移一位+|Y

98、|+|Y|变补变补 1 1.0 0 0 1 0 1 1.0 0 0 1 0 -|Y| -|Y| 1 1.1 1 0 1 0 0.0 0 1 1.1 1 0 1 0 0.0 0 0 1 00 1 0 余数为负,商余数为负,商0 0 1 1.1 0 1 0 0 1 1.1 0 1 0 0 左移一位左移一位+|Y| 0 0.1 1 1 1 0 +|Y| 0 0.1 1 1 1 0 0 1 0 1 0 1 0 1 余数为正,商余数为正,商1 1 0 1.0 0 1 0 0 0 1.0 0 1 0 0 左移一位左移一位+|Y|+|Y|变补变补 1 1.0 0 0 1 0 1 1.0 0 0 1 0 -|

99、Y| -|Y| 0 0.0 0 1 1 0 0. 0 0.0 0 1 1 0 0.0 1 0 1 10 1 0 1 1 余数为正,商余数为正,商1 1 0 0.0 1 1 0 0 0 0.0 1 1 0 0 左移一位左移一位+|Y|+|Y|变补变补 1 1.0 0 0 1 0 1 1.0 0 0 1 0 -|Y| -|Y| 1 1.0 1 1 1 0 1 1.0 1 1 1 0 0.1 0 1 1 0 0.1 0 1 1 0 余数为负,商余数为负,商0 0+|Y| 0 0.1 1 1 1 0 +|Y| 0 0.1 1 1 1 0 恢复余数,恢复余数,+|Y|+|Y| 0 0.0 1 1 0 0

100、 0 0.0 1 1 0 0|Y|Y|变补变补=1.00010 =1.00010 余数为余数为正正时,商时,商1 1,余数左移余数左移一位,一位,减减除数除数余数为余数为负负时,商时,商0 0,余数左移余数左移一位,一位,加加除数除数5.6 5.6 定点除法运算定点除法运算例例2 2:x=-0.10010 y=0.11011 x/y=?x=-0.10010 y=0.11011 x/y=? |x|=0.10010 |y|=0.11011 |x|=0.10010 |y|=0.11011 -|y| 补补+ 11.00101 + 11.00101 ; y y11.10111 11.10111 ;r0

101、r0 r0 上商上商 1 1 00.10010 00.10010 ;2r2r+ 11.00101 + 11.00101 ;- y- y11.10111 11.10111 ;r0 r0 r0 上商上商 1 1+ 11.00101 + 11.00101 ;- y- y 00.10010 00.10010 ;2r2r11.10111 11.10111 ;r0 r0 r0 上商上商 1 1 商商 原原余余=0.010012=0.010012-5-5 =0.10012=0.10012-6-6 5.6 5.6 定点除法运算定点除法运算从例子看出从例子看出, ,当当r0r0时,时, 恢复余数法:恢复余数法:

102、恢复余数,左移,减除数恢复余数,左移,减除数, ,三三步步 加减交替法:加减交替法:左移,加除数左移,加除数, ,二二步步故:加减交替法比恢复余数法简单。故:加减交替法比恢复余数法简单。 问题:问题:若最后一步的余数是负数怎么办?若最后一步的余数是负数怎么办? 当当r0r0时时, ,须做须做r+y,r+y,恢复一次余数,恢复一次余数, 余数是余数是0.0100120.010012-5-5结结论论:加加减减交交替替法法,当当最最后后一一次次余余数数为为负负数数时时,要要恢复余数,直至余数为正。恢复余数,直至余数为正。 5.6 5.6 定点除法运算定点除法运算二、补码除法二、补码除法1.1.规则(

103、规则(被除数和除数都用补码表示,符号位参加运算被除数和除数都用补码表示,符号位参加运算)1)1)若被除数与除数若被除数与除数同同号,第一步做被除数号,第一步做被除数减减除数除数, ,若余数与除数若余数与除数同号同号,够减,够减, ,商商1 1,余数左移一位,余数左移一位,减减除数除数若余数与除数若余数与除数异号,异号,不够减不够减, ,商商0 0,余数左移一位,余数左移一位,加加除数除数2)2)若被除数与除数若被除数与除数异异号,第一步做被除数号,第一步做被除数加加除数除数若余数与除数若余数与除数同号同号,不够减,不够减, ,商商1 1,余数左移一位,余数左移一位,减减除数除数若余数与除数若余

104、数与除数异号,异号,够减够减, ,商商0 0,余数左移一位,余数左移一位,加加除数除数3 3) )商的末位恒置商的末位恒置1 1,(误差,(误差 2 2- -n n) 符号位参与运算符号位参与运算 5.6 5.6 定点除法运算定点除法运算2. 2. 余数的恢复余数的恢复除法作完最后一步且除不尽时,按以下规则恢复余数:除法作完最后一步且除不尽时,按以下规则恢复余数:商为商为正正,且余数与除数,且余数与除数异异号,作号,作rrn n 补补+y+y补补,恢复余数。,恢复余数。商为商为负负,且余数与除数,且余数与除数同同号,作号,作rrn n 补补+yy补补,恢复余数。,恢复余数。 (商为商为正正,且

105、余数与除数,且余数与除数同同号,不恢复余数。号,不恢复余数。 商为商为负负,且余数与除数,且余数与除数异异号,不恢复余数。)号,不恢复余数。)注意:注意:1 1)运算时,仍然取双符号位,第一符号位指示正确的符号。)运算时,仍然取双符号位,第一符号位指示正确的符号。2 2)用末位恒置)用末位恒置1 1法上商,求出法上商,求出n-1n-1位商后,再往下作一步,位商后,再往下作一步,才能得到余数。才能得到余数。 5.6 5.6 定点除法运算定点除法运算例例1 1:已知:已知:X=0.1000X=0.1000,Y=-0.1010Y=-0.1010;求;求XY XY 解:解:XX补补=0.1000A=0

106、.1000A,YY补补=1.0110B=1.0110B,0C0C,-Y-Y补补=0.1010 =0.1010 A C A C 说明说明 0 0.1 0 0 0 0.0 0 0 0 0 0.1 0 0 0 0.0 0 0 0 +Y+Y补补 1 1.0 1 1 0 1 1.0 1 1 0 X X补、补、YY补异号,补异号,+Y+Y补补 1 1.1 1 1 0 0.0 0 0 1 1.1 1 1 0 0.0 0 0 1 1 ri ri补、补、YY补同号,补同号,商商1 1 1 1.1 1 0 0 1 1.1 1 0 0 左移一位左移一位+-Y+-Y补补 0 0.1 0 1 0 0 0.1 0 1 0

107、 +-Y +-Y补补 0 0.0 1 1 0 0.0 0 0 0.0 1 1 0 0.0 0 1 01 0 ri ri补、补、YY补异号,补异号,商商0 0 0 0.1 1 0 0 0 0.1 1 0 0 左移一位左移一位+Y+Y补补 1 1.0 1 1 0 1 1.0 1 1 0 +Y +Y补补 0 0.0 0 1 0 0.0 0 0.0 0 1 0 0.0 1 0 01 0 0 ri ri补、补、YY补异号,补异号,商商0 0 0 0.0 1 0 0 0 0.0 1 0 0 左移一位左移一位+Y+Y补补 1 1.0 1 1 0 1 1.0 1 1 0 +Y+Y补补 1 1.1 0 1 0

108、0. 1 1.1 0 1 0 0.1 0 0 11 0 0 1 ri ri补、补、YY补同号,补同号,商商1 1 1 1.0 1 0 0 1 1.0 1 0 0 左移一位左移一位+-Y+-Y补补 0 0.1 0 1 0 0 0.1 0 1 0 +-Y +-Y补补 1 1.1 1 1 0 1 1.1 1 1 0 1.0 0 1 11.0 0 1 1 末位恒置末位恒置1 1 商商 补补=1.0011=1.0011 余数余数 补补=1.1110*2=1.1110*2-4-45.6 5.6 定点除法运算定点除法运算例例2 2:x= -0.1001 y=0.1101 x/y=?x= -0.1001 y=

109、0.1101 x/y=? x补补=1.0111 Y补补=0.1101 -y 补补11.0111 ;11.0111 ;与与y y异号异号+ 00.1101 + 00.1101 ; y y00.0100 00.0100 ;与;与y y同号,上商同号,上商 1 1+ 11.0011 + 11.0011 ;- y- y 00.1000 00.1000 ;2r2r11.1011 11.1011 ;与;与y y异号,上商异号,上商 0 0 11.0110 11.0110 ;2r2r+ 00.1101 + 00.1101 ;+ y+ y00.0011 00.0011 ;与;与y y同号,上商同号,上商 1

110、100.0110 00.0110 ;2r2r5.6 5.6 定点除法运算定点除法运算+ 11.0011 + 11.0011 ;- y- y11.1001 11.1001 ;与;与y y异号,上商异号,上商 0 0+ 00.1101 + 00.1101 ;+ y+ y 11.0010 11.0010 ;2r2r11.1111 11.1111 ; 商商 补补1 1(末位恒置(末位恒置1 1)商为商为负负,且余数与除数,且余数与除数异异号,故不需恢复余数。号,故不需恢复余数。 余余 补补=11.11112=11.11112-4-45.7 5.7 规格化浮点运算规格化浮点运算 要对两浮点数进行加减运算

111、,需使其阶码相等要对两浮点数进行加减运算,需使其阶码相等 x= 0.110110 x= 0.110110 2 2011011 y= - 0.001011 y= - 0.001011 2 21101101.1.对阶对阶-小阶向大阶看齐小阶向大阶看齐要使两数的阶码相等,可通过移动尾数来进行要使两数的阶码相等,可通过移动尾数来进行尾数:左移尾数:左移 阶码减小阶码减小 尾数高位损失(尾数高位损失( ) 右移右移 阶码增加阶码增加 尾数精度损失(尾数精度损失( )移动位数:移动位数: J=J=J Jx x- -J Jy yxx补补 yy补补= = JJ补补=J Jx x 补补+-+-J Jy y 补补

112、 J=-3J=-35.7 5.7 规格化浮点运算规格化浮点运算 说明:明:x x要向要向y y看看齐 xx补= =yy补补= =00,11000,110;11.110101 ;11.110101 2 2求和(尾数)求和(尾数)00.00011000.000110 11.110101 11.110101 00.00011000.000110 00.00101100.001011x+yx+y补=; =; x-yx-y补补= =00,11000,1105.7 5.7 规格化浮点运算规格化浮点运算 根据规格化的定义,根据规格化的定义,补码补码正数正数应该满足应该满足 00.1 00.1 的形式的形式补

113、码补码负数负数应该满足应该满足 11.0 11.0 的形式的形式非规格化非规格化规格化规格化左规:尾数左移一位,阶码减左规:尾数左移一位,阶码减1 1右规:尾数右移一位,阶码加右规:尾数右移一位,阶码加1 1 x+yx+y补= =00,11000,110; ; 11.11101111.111011x-yx-y补补= =00,11000,110; 00.010001; 00.010001非规格化非规格化x+yx+y补= =00,01100,011;11.01100011.011000x-yx-y补补= =00,101; 00.10001000,101; 00.100010已规格化已规格化左规左规

114、左规左规5.7 5.7 规格化浮点运算规格化浮点运算 若尾数求和后出现以下情况:若尾数求和后出现以下情况: 01. 01. 10. 10. 这在定点集中表示这在定点集中表示溢出溢出,在浮点集中却允许。说明尾数,在浮点集中却允许。说明尾数求和结果的绝对值大于求和结果的绝对值大于1 1,是非规格化数,一般用右规,是非规格化数,一般用右规格就可使其规格化。格就可使其规格化。4 4舍入舍入 对阶,右规时,都要右移尾数,使尾数的低位丢失,造对阶,右规时,都要右移尾数,使尾数的低位丢失,造成误差,故都要进行成误差,故都要进行舍入舍入处理。处理。 右规,阶码加右规,阶码加1 15.7 5.7 规格化浮点运算

115、规格化浮点运算 浮点数有其表示范围,超过此范围浮点数有其表示范围,超过此范围(阶码溢出)(阶码溢出),即溢出。,即溢出。 练习:练习:设浮点数格式为设浮点数格式为,;.,;.X=-19/128 Y=117/128X=-19/128 Y=117/128,用浮点补码规则求,用浮点补码规则求XY=XY=?5.7 5.7 规格化浮点运算规格化浮点运算 一、乘法:尾数相乘,阶码相加步骤:步骤:1 1、阶码运算:阶码求和、阶码运算:阶码求和2 2、尾数运算:尾数相乘、尾数运算:尾数相乘3 3、结果处理:规格化、结果处理:规格化5.7 5.7 规格化浮点运算规格化浮点运算 二、除法:尾数相除,阶码相减步骤:

116、步骤:1 1、尾数调整:、尾数调整:保证商的尾数为定点小数,则要:保证商的尾数为定点小数,则要:|M|MA A|M|MB B| |,否则,否则,M MA A右移一位,右移一位, E EA A+1+12 2、阶码运算:阶码相减、阶码运算:阶码相减3 3、尾数运算:尾数相除、尾数运算:尾数相除5.8 5.8 十进制整数的加法运算十进制整数的加法运算 因为一位因为一位84218421码用四位二进制数表示,所以码用四位二进制数表示,所以84218421码十位码十位数的数的“1”“1”是个位数的进位。按四位二进制数而言,这个进是个位数的进位。按四位二进制数而言,这个进位的值是位的值是1616,而不是,而

117、不是84218421码的码的1010。因此,必须。因此,必须6 6校正,才校正,才能使该进位正确。按此要求可得出能使该进位正确。按此要求可得出84218421码的码的加法规则加法规则: 两个十进制数的两个十进制数的84218421码相加时,按码相加时,按“逢二进一逢二进一”的原则的原则进行;进行; 当和当和99,无需校正;,无需校正; 当和当和9 9,则,则+6+6校正;校正; 在做在做+6+6校正的同时,将产生向上一位的进位。校正的同时,将产生向上一位的进位。5.9 5.9 十进制整数的加减法十进制整数的加减法 十进制余十进制余3 3码加法规则:码加法规则: 两个十进制数的余两个十进制数的余

118、3 3码相加,按码相加,按“逢二进一逢二进一” ” 的原则进行;的原则进行; 若其和没有进位,则减若其和没有进位,则减3 3(即(即+1101+1101)校正;)校正; 若其和有进位,则加若其和有进位,则加3 3(即(即+0011+0011)校正。)校正。5.95.9逻辑运算逻辑运算 一、逻辑非一、逻辑非 按位求反,按位求反,设设x=xx=x0,0,x x1 1,x,x2 2.x.xn n二逻辑加二逻辑加(逻辑或,按位求或,(逻辑或,按位求或,v,+v,+ ) 设设x=xx=x0,0,x x1 1,x,x2 2.x.xn n,y=yy=y0,0,y y1 1,y,y2 2.y.yn n z z

119、i i=x=xi i+y+yi i (I=0,1,2, (I=0,1,2,.,n).,n)(0+0=0 1+0=1 1+1=00+0=0 1+0=1 1+1=0)三逻辑乘三逻辑乘 逻辑与,逻辑求与。逻辑与,逻辑求与。(00=0 10=0 11=100=0 10=0 11=1)四逻辑异四逻辑异 按位进行异或,半加,模按位进行异或,半加,模2 2加,异或,按位加加,异或,按位加 (0+0=0 1+0=1 1+1=00+0=0 1+0=1 1+1=0) 注意:注意:逻辑运算都是按位运算都是按位进行行的,无的,无进位位、借位关系。借位关系。 5.10 5.10 运算器的基本组成与实例运算器的基本组成与

120、实例5.10.1 5.10.1 运算器结构运算器结构ALUALU、寄存器组、判别逻辑和控制电路、寄存器组、判别逻辑和控制电路 1 1、带多路选择器的运算器、带多路选择器的运算器P P130130图图5-245-24 2 2、带输入锁存器的运算器、带输入锁存器的运算器P P130130图图5-255-25二二. .运算器的内部总线结构运算器的内部总线结构 1 1、单总线结构运算器、单总线结构运算器P P130130图图5-255-25 2 2、双总线结构运算器、双总线结构运算器P P131131图图5-265-26(a a) 3 3、三总线结构运算器、三总线结构运算器P P130130图图5-265-26(b b)5.10 5.10 运算器的基本组成与实例运算器的基本组成与实例5.10.2 ALU5.10.2 ALU举例举例5.10 5.10 运算器的基本组成与实例运算器的基本组成与实例

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号