[分析]: 发生错误的原因,是因为运算结果产生了溢出。 两个正数相加:结果大于机器所能表示的最大正数,称为上溢; 两个负数相加:结果小于机器所能表示的最小负数,称为下溢。 下溢负溢出 正溢出上溢 负小数正小数 +1 机器定点小数表示 计算机组成原理
计算机组成原理 16 发生错误的原因,是因为运算结果产生了溢出。 两个正数相加: 结果大于机器所能表示的最大正数,称为上溢; 两个负数相加:结果小于机器所能表示的最小负数,称为下溢。 机器定点小数表示 下溢 上溢 [分析] :
2.溢出的检测方法 x补0.1011 补 1.0011 +yl补 补0.1001 +Iyl1.0101 x+y补 ]1.0100 X yl补0.1000 补 (1)单符号位法 溢出逻辑表达式为: FA V=S.S. S ss 2c 判断 判断电路 计算机组成原理 17
计算机组成原理 17 2.溢出的检测方法 [x]补 0. 1 0 1 1 + [y]补 0. 1 0 0 1 [x+y]补 1. 0 1 0 0 [x]补 1. 0 0 1 1 + [y]补 1. 0 1 0 1 [x+y]补 0. 1 0 0 0 溢出逻辑表达式为: V=S1 S2 Sc + S1 S2 Sc (1) 单符号位法 FA V z0 y0 x0 判断 电路 判断电路
(2)双符号位法 个符号位只能表示正、负两种情况,当产生溢出时,符号 位的含义就会发生混乱。如果将符号位扩充为两位(Sn、S 其所能表示的信息量将随之扩大,既能判别是否溢出,又能指 出结果的符号。 双符号位法也称为“变形补码”或“模4补码”。 变形补码定义 0≤x<2 补 4+x-2≤x<0(mod4) 计算机组成原理 18
计算机组成原理 18 一个符号位只能表示正、负两种情况,当产生溢出时,符号 位的含义就会发生混乱。如果将符号位扩充为两位(Sf1、Sf2 ), 其所能表示的信息量将随之扩大,既能判别是否溢出,又能指 出结果的符号。 (2) 双符号位法 双符号位法也称为“变形补码”或“模4补码”。 变形补码定义: [x]补= x 0 x<2 4+x -2 x<0 (mod 4)
采用变形补码后数的表示: 任何小于1的正数:两个符号位都是“0”,即00.x1x2…xn 任何大于-1的负数:两个符号位都是“1”,即11x1x2…,xn 模4补码加法公式:x补+y补=xy补(mod4 两数变形补码之和等于两数和的变形补码,要求 两个符号位都看做数码一样参加运算; 两数进行以4为模的加法,即最高符号位上产生的进位要丢掉 计算机组成原理 19
计算机组成原理 19 • 任何小于1的正数:两个符号位都是“0”,即00.x1 x2 ...xn ; • 任何大于-1的负数:两个符号位都是“1”,即11.x1 x2…xn 两数变形补码之和等于两数和的变形补码,要求: • 两个符号位都看做数码一样参加运算; • 两数进行以4为模的加法,即最高符号位上产生的进位要丢掉 模4补码加法公式: [x]补+[ y]补=[x+y]补 (mod 4) 采用变形补码后数的表示:
双符号位的含义如下: SnSn=00结果为正数,无溢出 01结果正溢 10结果负溢 结果为负数,无溢出 即:结果的两个符号位的代码不一致时,表示溢出; 两个符号位的代码一致时,表示没有溢出。 不管溢出与否,最高符号位永远表示结果的正确符号。 溢出逻辑表达式为:V=SnS 中Sn和S2分别为最高符号位和第二符号位,此逻辑表达式 可用异或门实现 计算机组成原理
计算机组成原理 20 Sf1 Sf2 = 00 结果为正数,无溢出 01 结果正溢 10 结果负溢 11 结果为负数,无溢出 即:结果的两个符号位的代码不一致时,表示溢出; 两个符号位的代码一致时,表示没有溢出。 不管溢出与否,最高符号位永远表示结果的正确符号。 溢出逻辑表达式为: V=Sf1⊕Sf2 中Sf1和Sf2分别为最高符号位和第二符号位,此逻辑表达式 可用异或门实现。 双符号位的含义如下: