计算机组成原理 第四章(严军勇)-2003-2012年
规格化浮点运算 浮点加减运算 尾数结果规格化——左规 左规=Cs1Cs2C1+Cs1Cs2C1 尾数每左移一位,阶码相应减1(EC-1→EC) 尾数结果规格化——右规 右规=Cs1⊕Cs2 并非真正的溢出 尾数每右移一位,阶码相应加1(EC+1→EC) 例:有两浮点数为 A=0.101110×2-01 B=-(0.101011)×2-10 假设这两数的格式:阶码4位,用移码表示;尾数8位,用补码表示,包含一位符号位,即 [A]浮=0111;0;1011100 [B]浮=0110;1;0101010 E ms m ⑴ 对阶 求阶差:ΔE=EA-EB=-1-(-2)=1 ΔE=1,表示EA>EB。按对阶规则,将MB右移一位,其阶码加1,得: [B]浮’=0111;1;1010101 ⑵ 尾数求和 00.1011100 + 11.1010101 00.0110001 ⑶ 尾数结果规格化及判溢出 由于结果的尾数是非规格化的数,故应左规。尾数每左移一位,阶码减1,直至尾数成为规格化数为止。 [A+B]尾补=00.0110001 [A+B]尾补’ =00.1100010×2-1 最后结果为 [A+B]浮’ =0110;0;1100010 ∴A+B=(0.110001)×2-10 规格化浮点运算 浮点乘除运算 约定: A=MA×2EA B=MB×2EB A?B=(MA?MB)?2(EA+EB) A÷B=(MA÷MB)?2(EA-EB) 乘法步骤: 阶码相加:移码,要减去一个偏置值2n 尾数相乘 尾数结果规格化 规格化浮点运算 浮点乘除运算 约定: A=MA×2EA B=MB×2EB A?B=(MA?MB)?2(EA+EB) A÷B=(MA÷MB)?2(EA-EB) 除法步骤: 尾数调整: |MA|<|MB| 阶码相减:移码,要加上一个偏置值2n 尾数相除 十进制整数的加法运算 一位十进制加法运算及实现 8421码加法 两个8421码相加时, “逢二进一” [当和≤9,无需校正 当和>9,则+6校正 在做+6校正的同时,将产生向上一位的进位 十进制数 8421码 C4S4S3S2S1 校正前的二进制数 C4’S4’S3’S2’S1’ 校正与否 0 | 9 0 0 0 0 0 | 0 1 0 0 1 0 0 0 0 0 | 0 1 0 0 1 不校正 10 11 12 13 14 15 16 17 18 19 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 +6校正 校正举例 0101 5 + 10008 1101 + 0110 6 1 0011 13 1001 9 + 10008 1 0001 + 0110 6 1 0111 17 +6校正函数=C4’+S4’S3’+S4’S2’ 2.余3码加法 十进制余3码加法规则: ①两个余3码相加,“逢二进一” ; ②若其和没有进位,则减3(即+1101)校正; ③若其和有进位,则加3(即+0011)校正。 4.7 十进制整数的加减运算 十进制整数的加法运算 一位十进制加法运算及实现 余3码加法 两个余3码相加,“逢二进一” 若其和没有进位,则减3(即+1101)校正 若其和有进位,则加3(即+0011)校正 十进制数 余3码 C4S4S3S2S1 校正前的二进制数 C4’S4’S3’S2’S1’ 校正与否 0 1 | 8 9 0 0 0 1 1 0 0 1 0 0 | 0 1 0 1 1 0 1 1 0