运算方法与运算器
3.1定点数的运算
3.1.1加减运算
补码加减法的依据:

1.加减运算方法
- 参加运算的操作数用补码表示;
- 补码的符号位与数值位同时进行加运算:
- 加:两数补码直接相加;
- 减:减数补码连同符号位一起按位取反,末位加1;在与被减数的补码相加。
- 运算结果即为和/差的补码。
2.溢出判断
1)双符号位判决法
若运算结果两符号分别用S2S1表示,则判别溢出的逻辑表达式为:VF = S1异或S2

2)进位判决法

3)根据运算结果的符号为和进位标志判别
4)根据运算前后的符号位进行判断
一旦溢出发生,则会
- 在CPU中的标志寄存器中建立溢出标志;
- 或者产生溢出中断。
3.一位全加器的实现


1)行波进位加法器
行波进位的4位加法器:

2)先行进位加法器

5.8421 BCD数加法器
BCD加法的矫正:

6.移码加减运算
对两移码求和差时,首先对该两移码求和差;
对结果进行修正——将结果的符号取反。

3.1.2乘法运算
1.原码乘法运算
1)原码一位乘法的法则
乘积的符号为被乘数的符号位与乘数的符号位相异或;
乘积的绝对值为被乘数的绝对值与乘数的绝对值之积。
2)原码一位乘法的实现思路

3)原码一位乘法的运算过程

4)原码一位乘法器框图

2.补码乘法运算


2)布斯法

补码一位乘运算规律:

补码一位乘法器(Booth算法)框图:

3.阵列乘法器
1)手算及单元电路

2)绝对值(无符号数)阵列乘法器

3)带符号数的阵列乘法器
求补电路:E为低电平0,输入输出一样;E为高电平,输出按位取反加一。


3.1.3除法运算
实现方式: 原码,补码(不要求)
前提条件:除数不能为0 ,商可以表示
1.原码除法运算
1)原码除法的法则
- 除数 != 0
- 定点纯小数时,|被除数| < |除数|
- 定点纯整数时,|被除数| >=|除数|
- 商的符号=被除数的符号 异或 除数的符号
- 商| = |被除数| / |除数|
- 将商的符号与商的值拼接在一起
2)恢复余数法
判断溢出:被除数前四位是否小于除数

3)加减交替法

加减交替法的运算法则:


加减交替法除法器框图:
3.阵列除法器
3.2算数逻辑部件
3.2.2算术逻辑部件
74LS181(4位ALU)
3.2.3运算器的结构
1. 3种基本结构
单总线结构、双总线结构、三总线结构
2.计算机简单框图
3.3浮点运算
3.3.1加减运算
1.浮点数加减法的运算法则
对阶:小阶对大阶——小阶码+1,尾数右移1位,直到增大到与大阶码相同。
尾数加减运算:加法;减法:减数的符号取反(求补),与被减数相加。
规格化
- 左规:
- 右规:
- 左规:
舍入处理
- 截(尾)断法: 将需丢弃的尾数低位丢弃。
- 末位恒置1法:使要保留的尾数最低位永远为1。
- 0舍1入法:

3.浮点运算实例
3.3.2乘除运算
1.浮点乘法运算
- 两乘数一定是规格化数。若一个乘数为0,则乘积必为0。
- 求乘积的阶码:Ez = Ex + Ey; 判断积的阶码是否溢出:上溢,下溢。
- 求乘积的尾数:两乘数的尾数相乘。
- 规格化乘积的尾数。
浮点乘法流程图:

2.浮点除法运算
- 被除数、除数一定是规格化数。若被除数为0,则商必为0。
- 求商的阶码:Ez = Ex - Ey; 判断商的阶码是否溢出:上溢,下溢。
- 求商的尾数:Mz = Mx / My。
- 规格化商的尾数。
浮点除法流程图:
