组成原理第2章__运算方法和运算器_第1页
组成原理第2章__运算方法和运算器_第2页
组成原理第2章__运算方法和运算器_第3页
组成原理第2章__运算方法和运算器_第4页
组成原理第2章__运算方法和运算器_第5页
已阅读5页,还剩104页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、BCD码便于输入输出,表达数值准确码便于输入输出,表达数值准确表表2.1 ASCII字符编码表字符编码表0-3位位4-7位位汉字的输入编码、交汉字的输入编码、交换码、汉字内码、字换码、汉字内码、字模码是计算机中用于模码是计算机中用于输入、内部处理、交输入、内部处理、交换、输出四种不同用换、输出四种不同用途的编码,不要混为途的编码,不要混为一谈一谈. 显示输出显示输出打印输出打印输出机内码向字形码转换机内码向字形码转换机内码机内码输入码向机内码转换输入码向机内码转换字符代码化(输入)字符代码化(输入)数据1010101001010100000000000111111111111111偶校验码10

2、101010 001010100 100000000 001111111 111111111 0奇校验码10101010 101010100 000000000 101111111 011111111 1n海明码定点小数的小数点位置定点整数的小数点位置纯整数:纯整数:X = 01010110.正数,符号位取正数,符号位取0Y= - 1101001.纯整数:纯整数:Y = 11101001. (原码)(原码)负数,符号位取负数,符号位取1X=+0.11011Y=-0.10101符号位取符号位取0纯小数:纯小数:X = 0.11011符号位取符号位取1纯小数:纯小数:X = 1.10101 (原码

3、)(原码)指数E基数J,取固定的值,比如10,2等尾数M2、机器中表示、机器中表示 阶符阶码数符尾数:含阶符的阶码,:含阶符的阶码,8 位位阶码采用移码方式来表示阶码采用移码方式来表示正负指数正负指数:1位符号位符号位位0表示正数表示正数1表示负数表示负数 :尾数,:尾数,23位小位小数表示,小数点放数表示,小数点放在尾数域最前面在尾数域最前面IEEE 754标准标准对于二进制数对于二进制数1011.1101=0.10111101 2+4= 10.111101 2+2 = 1.0111101 2+3 (规格化表示法规格化表示法)= 1.0111101 2+11 (规格化表示法规格化表示法)=R

4、EM那么,计算机中究竟采用哪种数据形式?那么,计算机中究竟采用哪种数据形式?多种数据形式多种数据形式二进制数二进制数指数真值指数真值e 用偏移码形式表示为阶码用偏移码形式表示为阶码IEEE 754标准标准 X(-1)s1.M2e (1.011011)231011.011(11.375)10 指数指数e阶码阶码127 1000 00100111111100000011=(3)10 包括隐藏位包括隐藏位1的尾数的尾数1.M 1.011011例1:浮点机器数 (41360000)16,求真值 十六进制数展开成二进制数十六进制数展开成二进制数0 100 0001 0011 0110 0000 0000

5、 0000 0000S阶码阶码E(8位位)尾数尾数M(23位位)例例2:真值:真值20.59375,求,求32位单精度浮点数位单精度浮点数 分别将整数和分数部分转换成二进制数分别将整数和分数部分转换成二进制数 20.5937510100.10011 移动小数点,使其在第移动小数点,使其在第1、2位之间位之间10100.100111.01001001124e4S0E4+12713110000011M010010011 得到得到32位浮点数的二进制存储格式为:位浮点数的二进制存储格式为:0 100 0001 1010 0100 1100 0000 0000 0000(41A4C000)16l 最大

6、的优点就是将减法运算转换成加法运算最大的优点就是将减法运算转换成加法运算l X补补-Y补补= X补补+-Y补补例如例如 X=(11)10=(1011)2 Y=(5)10=(0101)2已知字长已知字长n=5位位X补补-Y补补 =X补补+-Y补补=01011+11011=100110=00110=(6)10 注:注: 最高最高1位已经超过字长故应丢掉位已经超过字长故应丢掉l 无正零和负零之分无正零和负零之分移码的定义是:移码的定义是: x移移=2n+x 例例: -1011111 原码为原码为11011111 补码为补码为10100001 反码为反码为10100000 移码为移码为00100001

7、特点:移码和补码尾数相同,符号位相反特点:移码和补码尾数相同,符号位相反范围范围:-2n2n-1l 补码加法运算补码加法运算 l 补码减法运算补码减法运算 l 溢出概念及检测方法溢出概念及检测方法 l 基本的二进制加法基本的二进制加法/减法器减法器 l 十进制加法器十进制加法器 3) X= 3 Y= 21) X=3 Y=22) X= 3 Y= 24) X= 3 Y= 2例例. 求求(X+Y)补补3) X= 3 Y= 20 0001(+1补码)补码)1) X=3 Y=2 X补补=0 0011 Y补补=1 11102) X= 3 Y= 2 X补补=1 1101 Y补补=1 11101 1011 (

8、 5补码)补码) X补补=0 0011 Y补补=0 00100 0101(+5补码)补码)4) X= 3 Y= 2 X补补=1 1101 Y补补=0 00101 1111(1补码)补码)例例. 求求(X+Y)补补 2.3.2 补码减法运算补码减法运算 ( X - Y )补补 = X补补 + (-Y)补补操作码为操作码为“减减”时,将减转换为加。时,将减转换为加。 1) X= 4 Y= 5 X补补=0 0100 Y补补=1 1011(-Y)补补=0 01010 1001(+9补码)补码)2) X= 4 Y= 5 X补补=1 1100 Y补补=0 0101(-Y)补补=1 10111 0111 (

9、9补码)补码)例例. 求求(X Y)补补Y补补 (Y)补补:将将Y Y补补变补变补不管不管Y Y补补为正或负,将其符号连同为正或负,将其符号连同尾数一起各位变反,末位加尾数一起各位变反,末位加1 1。即将减数变补后与被减数相加。即将减数变补后与被减数相加。 X补补=0 0100 Y补补=1 1011 X补补=1 1100 Y补补=0 0101注意:某数的补码表示与某数变补的区别。注意:某数的补码表示与某数变补的区别。例例. 1 0101. 1 0101原原 1 10111 1011补码表示补码表示1 00111 0011补补 0 11010 1101变补变补 0 0101 0 0101原原 0

10、 01010 0101补码表示补码表示符号位不变符号位不变,负数尾数改变,负数尾数改变,正数尾数不变。正数尾数不变。0 00110 0011补补 1 11011 1101变补变补符号位改,符号位改,尾数改变。尾数改变。补码的机器负数补码的机器负数2. 算法流程算法流程操作数用补码表示,符号位操作数用补码表示,符号位参加运算参加运算结果为补码表示,符号位指示结果为补码表示,符号位指示结果正负结果正负X补补+Y补补X补补+(-Y)补补ADDSUB3. 逻辑实现逻辑实现A(X补补)B(Y补补)+AABB+B+B+1CPA A(1)控制信号控制信号加法器输入端:加法器输入端:+A+A:打开控制门,将:

11、打开控制门,将A A送送。+B+B:打开控制门,将:打开控制门,将B B送送。+1+1:控制末位加:控制末位加 1 1 。+B+B:打开控制门,将:打开控制门,将B B送送。加法器输出端:加法器输出端: A:打开控制门,将结打开控制门,将结 果送果送A输入端。输入端。CPCPA A:将结果打入:将结果打入A A。(2)补码加减运算器粗框补码加减运算器粗框2.3.4 溢出判断溢出判断在什么情况下可能产生溢出?在什么情况下可能产生溢出?例例. .数数A A有有4 4位尾数,位尾数,1 1位符号位符号S SA A 数数B B有有4 4位尾数,位尾数,1 1位符号位符号S SB B 符号位参符号位参加

12、运算加运算 结果符号结果符号S Sf f符号位进位符号位进位C Cf f尾数最高位进位尾数最高位进位C Cl 两正数加,变负数,上溢(大于机器所能表示的两正数加,变负数,上溢(大于机器所能表示的最大数)最大数)l 两负数加,变正数,下溢(小于机器所能表示两负数加,变正数,下溢(小于机器所能表示的最小数)的最小数)(2)A=10 B=7 10+7 : 0 1010 0 01111 0001 (4)A= -10 B= -7 -10+(-7):0 1111 1 01101 10011. 硬件判断逻辑一硬件判断逻辑一(SA、SB与与Sf的关系)的关系)溢出溢出= = S SA AS SB BS Sf

13、fS SA AS Sf fS SB B2. 硬件判断逻辑二硬件判断逻辑二(Cf与与C的关系)的关系)溢出溢出= = C Cf f C C3. 硬件判断逻辑三硬件判断逻辑三(双符号位(双符号位)溢出溢出= S= Sf1f1 S Sf2f2(1)3+2:正确正确00 001100 001000 0101 (2)10+7:00 101000 011101 0001 正溢正溢正确正确负溢负溢正确正确正确正确(3)-3+(-2):11 0111 11 110111 1110(4)-10+(-7):10 1111 11 011011 1001(5)6+(-4):00 0010 00 011011 1100

14、(6)-6+4:11 1110 11 101000 0100第一符号位第一符号位Sf1第二符号位第二符号位Sf2有进位有进位无进位无进位无进位无进位无进位无进位两负数相加,结果为正,显然错误。两负数相加,结果为正,显然错误。运算中出现了“下溢”无进位无进位有进位有进位FA(全加器)逻辑电路图 FA框图l 原码原码1位乘法位乘法 l 补码补码1位乘法位乘法l 阵列乘法器阵列乘法器 2.3.1 原码一位乘法原码一位乘法 (4/5)例题 已知X=-0.1011,Y=0.1001,求XY原解: X原=1.1011,Y原=0.1001 |X| = 0.1011,|Y| = 0.1001按原码一位乘法运算

15、规则,求XY原的数值部分。|X|Y| = 0.01100011, 而Zs = Xs Ys = 1 0 =1最后求得XY原 = 1.01100011例题之例题之原码原码一一位乘法运算过程位乘法运算过程 +) 0. 0 0 0 0 +) 0. 0 0 0 0 +) 0. 1 0 1 1 +) 0. 1 0 1 1 0. 0 0 0 10. 0 1 1 00. 1 1 0 00. 0 0 1 00. 0 0 1 00. 0 1 0 10. 0 1 0 10. 1 0 1 10. 0 0 0 0右移一位得部分积右移一位得部分积Z4,乘数同时右移一位乘数同时右移一位右移一位得部分积右移一位得部分积Z3,

16、乘数同时右移一位乘数同时右移一位右移一位得部分积右移一位得部分积Z2,乘数同时右移一位乘数同时右移一位右移一位得部分积右移一位得部分积Z1,乘数同时右移一位乘数同时右移一位Y1=1,加,加|X|Y2=0,加,加0Y3=0,加,加0Y4=1,加,加|X|设部分积初值设部分积初值Z0=0操作说明操作说明乘乘 数数部部 分分 积积1 0 0 11 1 0 01 1 1 00 1 1 10 0 1 1低低 位位 积积高高 位位 积积例原码一位乘法运算过程例原码一位乘法运算过程不带符号的阵列乘法器不带符号的阵列乘法器求补器求补器2.4.1 原码一位除法-加减交替法加减交替法例 X = -0.1011,Y

17、=0.1101,求X/Y原解: X原=1.1011,Y原=0.1101 Y补=0.1101,-Y补=1.0011 商的符号 Qs= 1 0 = 1 所以 X/Y原 = 1.1101 余数=0.01112-4例题之原码不恢复余数除法运算过程例题之原码不恢复余数除法运算过程 +) 1 1. 0 0 1 1 1 1. 1 1 1 0 0 0. 1 0 1 1+Y余数与商左移一位余数与商左移一位初始状态+-Y补+-|Y|补余数为负,商“0”余数为正,商“1”操作说明商Q上商被除数(余数)0. 0 0 0 00. 0 0 0 00. 0 0 0 10. 0 0 1 00. 0 0 0 0 +) 0 0.

18、 1 1 0 1 1 1. 1 1 0 0 +) 1 1. 0 0 1 1 0 0. 1 0 0 1 0 1. 0 0 1 00. 0 0 1 10. 0 1 1 0 +) 1 1. 0 0 1 1 0 0. 0 1 0 1 0 0. 1 0 1 0余数为正,商“1” 0 0. 0 1 1 10. 1 1 0 10. 0 1 1 00. 1 1 0 0 +) 0 0. 1 1 0 1 1 1. 1 1 0 1 1 1. 1 0 1 0余数与商左移一位+-|Y|补余数为正,商“1”+Y余数与商左移一位余数为负,商“0”2.4.1 原码一位除法-恢复余数法例 X = -0.1001,Y= -0.1

19、011,求X/Y原解:X原 = 1.1001,Y原 = 1.1011 |X| = 0.1001,|Y| = 0.1011,-|Y|补 = 1.0101运算过程如下:所以,Qs = 1 1 = 0 X/Y原 = Q原 = 0.1101 R原 = 2-4R5 = 0.00000001例题之例题之原码恢复余数除法运算过程原码恢复余数除法运算过程+)0 0. 1 0 1 1+)1 1. 0 1 0 1 1 1. 1 1 1 0 0 0. 1 0 0 1R1恢复余数,+|Y|R0 = X|+-|Y|补+-|Y|补+-|Y|补得R1 0,商上1余数左移一位余数左移一位操作说明商Q上商(余 数)被 除 数0

20、. 0 0 0 00. 0 0 0 00. 0 0 0 10. 0 0 1 00. 0 0 0 0 +)1 1. 0 1 0 1 0 0. 1 0 0 1 0 1. 0 0 1 0 +)1 1. 0 1 0 1 0 0. 0 1 1 1 0 0. 1 1 1 00. 0 0 1 10. 0 1 1 0 +)1 1. 0 1 0 1 0 0. 0 0 1 1 0 0. 0 1 1 0+-|Y|补得R3 0,商上1余数左移一位 +)0 0. 1 0 1 1 1 1. 1 0 1 1恢复余数,+|Y|得R4 0,商上10. 1 1 0 1原码加减交替法逻辑结构框图原码加减交替法逻辑结构框图 加数器加

21、数器YfCxQnTiQnT1 , T2, +1LDR1LDR0被除数被除数X或者余数寄存器或者余数寄存器R0商商Q寄存器寄存器R1除数除数Y寄存器寄存器ffR2R计数器计数器iQfXfR0R1Qn+1SQ1. 浮点加减法运算浮点加减法运算 (1/7)设两个浮点数x和y分别为: x=Sx2Ex y=Sy2 Ey其中,Ex、Ey分别是x和y的阶码,Sx和Sy是x、y的尾数。假定它们都是规则化的数,即其尾数绝对值总小于1(用补码表示,允许为1),浮点加减运算的运算步骤如下:1. 浮点加减法运算浮点加减法运算 (2/7)1 对阶:小阶向大阶看齐 对阶的第一步是求阶差:E =Ex-Ey 若E =0,表示

22、两数阶码相等,即ExEy,不需要对阶 若E 0,表明ExEy 若E 0,表明Ex0时 1/2S1 对于SS-1理论上,S可等于-1/2,但-1/2补=11.1000,为了便于判别是否是规格化数,不把-1/2列为规格化数,而把-1列入规格化数。 -1补=11.000 补码规格化的浮点数应有两种形式: 00.1xxx 11.0 xxx1. 浮点加减法运算浮点加减法运算 (4/7)由此可知补码规格化的条件是:(A)若和或差的尾数两符号位相等且与尾数第一位相等,则需向左规格化。即将和或差的尾数左移,每移一位,和或差的阶码减一,直至尾数第一位与尾符不等时为止。(B)若和或差的尾数两符号位不等,即01.x

23、xx或10.xxx形式,表示尾数求和(差)结果绝对值大于,向左破坏了规格化。此时应该将和(差)的尾数右移1位,阶码加,即进行向右规格化。4 舍入(1) “0舍1入”法,即右移时丢掉的最高位为0,则舍去;是1,则将尾数的末位加1(相当于进入)。(2)“恒置1”法,即不管移掉的是0还是1,都把尾数的末位置1。1. 浮点加减法运算浮点加减法运算 (5/7)5. 浮点数的溢出判断:由阶码判断是否溢出。设阶码数值部分取7位,符号位取2位,用补码表示,则能表示的最大阶码E补=001111111=127; 最小阶码E补=110000000=-128;(1)小于-128,称为下溢:发生在左规时;用机器0表示(

24、阶码、尾数全0)(2)大于+127时,称为上溢,这是浮点数的真正溢出置溢出标志,作中断处理n总结:E补=01 XXX为上溢,真正溢出,需做溢出处理。 E 补=10 XXX为下溢,浮点数值趋于零,用机器零表示。1. 浮点加减法运算浮点加减法运算 (6/7)例 x = 0.11011001,y=- (0.1010)1011,求x+y=?解:(1)对阶:假定两数在计算机中采用补码制,则 x补=0001,00.1101 Ex=0001 y补=0011,11.0110 Ey=0011 求阶差:E =Ex-Ey=0001+1101=1110,即E =-2,表示x的阶码Ex小于y的阶码Ey,阶差为-2,所以

25、应使x的尾数右移2位,阶码加2,则x补=0011, 00.0011,这时E =0,对阶完毕。1. 浮点加减法运算浮点加减法运算 (7/7)(2) 尾数求和(差) x和y对阶后的尾数分别为:Sx补=00.0011,Sy补=11.0110 则 Sx补+Sy补=00.0011+11.0110=11.1001 x+y补=0011,11.1001(3) 规格化和的尾数的两符号位相等,但小数点后的第一位也与符号位相等,不是规格化数,需要进行左规,即向左规格化:尾数左移一位,阶码减,就可得到规格化的浮点数结果。 x+y补=0010,11.00102. 浮点乘法运算浮点乘法运算 (1/3)设 x=Sx2Ex

26、, Y=Sy2 Ey则 xY=(SxSy)2 Ex+Ey浮点数乘法运算的规则为:n乘积的阶码由两数阶码相加求得n乘积的尾数等于被乘数和乘数的尾数之积可采用定点数乘方法(A)需要对浮点数尾数积进行规格化(左规、右规:均是最多一位)(B)舍入:0舍1入,若采用双倍字长乘积时,没有舍入问题。2. 浮点乘法运算浮点乘法运算 (2/3)例3-15 已知 x=0.11000010101,y=-0.11100010100,设阶码数值部分各取5位,阶符2位;尾数数值部分各取6位,尾符2位,按机器浮点数运算步骤,求xy。解 : (1) 求阶和 Ex补=00 00101 Ey补=00 00100 E补=Ex补 +

27、 Ey补 = 00 01001 (2) 尾数相乘 可利用原码或补码定点数乘法求尾数之乘积,可得 SxSy原 = 1.101010000000 或 SxSy补 = 1.0101100000002. 浮点乘法运算浮点乘法运算 (3/3)(3) 规格化 SxSy原或SxSy补已是规格化形式,勿需规格化。(4) 舍入 若取单字长乘积,可得SxSy原=1.101010或SxSy补=1.010110,所以 xy原=1.101010100001001 xy补=1.010110100001001 得 xy = -0.101010101001= -1010100003 浮点除法运算浮点除法运算n浮点数除法的运算

28、规则为:n商的尾数由两数的尾数相除求得n商的阶码由两数阶码相减求得 设x=Sx2Ex, y=Sy2Ey , 则x/y=(Sx/Sy)2 Ex-Eyn步骤 (1)预置 (2)尾数调整 (3)求阶差 (4)尾数相除 (5)规格化 (6)舍入浮点加减运算的操作过程浮点加减运算的操作过程n分为四步:分为四步: 1. 0 操作数的检查;操作数的检查; 2. 比较阶码大小并完成对阶;比较阶码大小并完成对阶; 3. 尾数进行加或减运算;尾数进行加或减运算; 4. 结果规格化并进行舍入处理。结果规格化并进行舍入处理。(1 1)0 0 操作数检查操作数检查n浮点加减运算过程比定点运算过程复杂浮点加减运算过程比定

29、点运算过程复杂n如果判知两个操作数如果判知两个操作数或或中有一个数为中有一个数为0,即可得知运算结果而没有必要再进行后续的即可得知运算结果而没有必要再进行后续的一系列操作以节省运算时间。一系列操作以节省运算时间。n0操作数检查步骤则用来完成这一功能。操作数检查步骤则用来完成这一功能。(2 2)比较阶码大小并完成对阶比较阶码大小并完成对阶n两浮点数进行加减,首先要看两数的阶码两浮点数进行加减,首先要看两数的阶码是否相同,即小数点位置是否对齐。若二是否相同,即小数点位置是否对齐。若二数阶码相同,表示小数点是对齐的,就可数阶码相同,表示小数点是对齐的,就可以进行尾数的加减运算。若二数阶码不同,以进行

30、尾数的加减运算。若二数阶码不同,表示小数点位置没有对齐,必须使二数阶表示小数点位置没有对齐,必须使二数阶码相同,这个过程叫作码相同,这个过程叫作对阶对阶(3 3)尾数求和运算尾数求和运算n对阶结束后,即可进行尾数的求和运算。对阶结束后,即可进行尾数的求和运算。不论加法运算还是减法运算,都按加法不论加法运算还是减法运算,都按加法进行操作,其方法与定点加减法运算完进行操作,其方法与定点加减法运算完全一样。全一样。(4 4)结果规格化结果规格化n在浮点加减运算时,尾数求和的结果也可以得到在浮点加减运算时,尾数求和的结果也可以得到01.或或10.,即两符号位不等,这在定即两符号位不等,这在定点加减法运算中称为溢出,是不允许的。但在浮点加减法运算中称为溢出,是不允许的。但在浮点运算中,它表明尾数求和结果的绝对值大于点运算中,它表明尾数求和结果的绝对值大于1,向左破坏了规格化。此时将运算结果右移以实现向左破坏了规格化。此时将运算结果右移以实现规格化表示,称为规格化表示,称为向右规格化,简称右规向右规格化,简称右规。规则规则是是:尾数右移:尾数右移1位,阶码加位,阶码加1。n尾数不是尾数不是1.M形式时,需向左规格化,简称左规形式时,需向左规格化,简称左规(5 5)舍入处理舍入处理n在对阶或向右规格

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论