第三章运算方法和运算部件
计算机组成原理电子教案陆遥
定点加减法运算
补码加减法运算
行波进位补码加法/减法器
定点乘法运算
原码一位乘法
补码一位乘法
阵列乘法器
定点除法运算
原码一位除法
补码一位除法
阵列除法器
定点运算器的组成与结构
逻辑运算与移位操作
算术逻辑单元(ALU)的功能设计
定点运算器的基本结构
浮点运算
浮点加法、减法运算
浮点乘法、除法运算
浮点运算部件
定点加减法运算
补码加减法运算
计算机中均采用补码进行加减运算。
定点整数补码加、减运算规则:
[x]补+ [y]补= [x + y]补(mod 2n)
[x]补- [y]补= [x]补+ [- y]补= [x - y]补(mod 2n)
定点小数补码加、减运算规则:
[x]补+ [y]补= [x + y]补(mod 21)
[x]补- [y]补= [x]补+ [- y]补= [x - y]补(mod 21)
补码减法运算可以转换为补码加法运算,这样可以简化运算器的设计。
【】设存放数据的寄存器为8位,
x = +1010110,y = -1001001,求[x + y]补。
解:首先求出x和y的补码
[x]补= 01010110 [y]补= 10110111
按补码加法规则,有
0 1 0 1 0 1 1 0 [x]补
+ 1 0 1 1 0 1 1 1 [y]补
0 0 0 0 1 1 0 1 [x + y]补(mod 28)
从运算结果来看,最高位上产生了进位1,但在模28的作用下,该位不被保留,所以
[x + y]补= 00001101 (mod 28)
其符号位为0,说明和为正数。
【】设存放数据的寄存器为8位,
x = +1010110,y = +1101001,求[x - y]补。
解:首先求出x和y的补码
[x]补= 01010110 [y]补= 01101001
要将减法转换为加法,先求出[- y]补= 10010111
由此可得
0 1 0 1 0 1 1 0 [x]补
+ 1 0 0 1 0 1 1 1 [-y]补
1 1 1 0 1 1 0 1 [x - y]补(mod 28)
所以
[x - y]补= 11101101 (mod 28)
从运算结果来看,符号位为1,说明差为负数。
【】设存放数据的寄存器为8位,
x = +1010110,y = +1001001,求[x + y]补。
解:首先求出x和y的补码
[x]补= 01010110 [y]补= 01001001
按补码加法规则,有
0 1 0 1 0 1 1 0 [x]补
+ 0 1 0 0 1 0 0 1 [y]补
1 0 0 1 1 1 1 1 [x + y]补(mod 28)
从运算结果来看,符号位为1,说明为负数。但由于x、y均为正数,其和不可能为负数。究竟是什么原因造成这样的错误呢?
补码是有一定的数据表示范围的;当两个数的补码相加(减),其和(差)超出特定位数的补码所能表示的数据范围时,称为“溢出”。“溢出”表现为,数的最高有效数字位占据并改变了数的符号位,从而造成数据表示的错误。
补码加减运算必须检测运算结果的“溢出”状态,并将检测结果反馈给处理器。
几种常用的“溢出”检测方法:
⑴根据运算结果的符号与运算数据的符号之间的关系检测“溢出”。设
[x]补= xn-1 xn-2 … x1 x0
[y]补= yn-1 yn-2 … y1 y0
[x + y]补= sn-1 sn-2 … s1 s0
其中,xn-1 、yn-1 和 sn-1 分别为[x]补、[y]补和
[x + y]补的符号位。以V 表示“溢出”状态,则有
⑵根据变形补码两个符号位之间的关系检测“溢出”。变形补码是具有两个符号位的补码;正数的变形补码,其两个符号位为00,负数的变形补码,其两个符号位为11。
【】设x = +1010110,y = +1001001,用变形补码求[x + y]补。
解:首先求出x和y的变形补码
[x]补= 001010110 [y]补= 001001001
则有
0 0 1 0 1 0 1 1 0 [x]补
+ 0 0 1 0 0 1 0 0 1 [y]补
0 1 0 0 1 1 1 1 1 [x + y]补(mod 29)
当变形补码产生溢出时,数的最高有效数字位会占据并改变两个
计算机组成原理电子教案第3章 来自淘豆网www.taodocs.com转载请标明出处.