一、高级语言和机器指令中的运算

1、C程序中设计的运算

运算 性质
按位运算 (符号“丨”表示按位OR运算,“&”表示按位AND运算,“~”表示按位NOT运算,“^”表示按位XOR运算)通过给定的一个 位模式(掩码)进行按位与,可以提取所需的位,然后可对这些位进行“置1”、清“0”、“1测试”或“0测试”
逻辑运算 “丨丨”表示OR运算,“&&”表示AND运算,“!”表示NOT运算。逻辑运算是非数值计算,其操作数只有两个逻辑值:True(用非0数表示)False(用全0数表示)
移位运算 有逻辑移位和算术移位,逻辑移位不考虑符号位,总是把高(低)位移出,低(高)位补0。对于无符号整数的逻辑左移,如果最高位移出是1,则发生溢出。对于带符号整数的移位操作应采用补码算术移位方式。左移时,高位移出,低位补0,每移一位,如果移出的高位不同于移位后的符号位,即左移前、后符号位不同,则发生溢出;右移时,低位移出,高位补符号
位扩展和左截断运算 进行数据类型转换时,遇到一个短数向长数转换,就要位扩展。进行位扩展时,扩展后的数值应保持不变。两种位扩展方式:①、0扩展:用于无符号数,只要在短的无符号数前面添加足够的0即可;②、符号扩展:用于补码表示的带符号整数,通过在短的带符号整数前添加足够多的符号位来扩展

2、MIPS指令中涉及的运算


二、基本运算部件

1、串行进位加法器

  • 全加和:

  • 全加进位:

2、并行进位加法器

  • 实现此逻辑表达式的电路称为先行进位(超前进位)部件,简称CLA。
    .

3、带标志加法器

  • n位无符号数加法器只能用于两个n位二进制数相加,不能进行无符号整数的减运算,也不能进行带符号整数的加减运算

4、算术逻辑部件

  • ALU是一种能进行多种算术运算与逻辑运算的组合逻辑电路,其核心部件是带标志加法器,多采用先行进位方式。

三、定点数运算

1、补码加减运算/font>

  • 在补码表示方式下,不管是正数还是负数,加、减运算统一采用加法来处理,符号位(最高有效位MSB)可以和数值位一起参与运算,加、减运算结果的符号位也在求和运算中直接得出。

2、原码加减运算

  • 在浮点数加减运算中,需要比较两个指数的大小,在进行浮点数乘除运算中,需要求指数的和与差,因此浮点数运算涉及移码加减运算。

4、原码乘法运算

  • 一位乘法:
    ①:确定乘积的符号位
    ②:计算乘积的数值位
  • 二位乘法
    如果对乘数的每两位取值情况进行判断,使每步求出对应该两位的部分积,则可将乘法速度提高一倍。

5、补码乘法运算

  • 一位乘法
    将符号位与数值位合在一起参与运算,直接的出用补码表示的乘积,且正数和负数同等对待。
  • 二位乘法
    两位一乘可以用布斯乘法过程来推导

6、快速乘法器

7、原码除法运算

四、浮点数运算

1、浮点数加减运算

1.对阶
2.尾数加减
3.位数规格化
4.尾数的舍入处理
5.溢出判断

2、浮点数乘除运算

浮点数乘法运算

1.位数相乘,指数相加
2.尾数规格化
3.尾数的舍入处理
4.溢出判断

浮点数除法运算

1.位数相除,阶相减
2.尾数规格化
3.尾数的舍入处理
4.溢出判断

五、运算部件组成

1、定点运算部件

2、浮点运算部件

 posted on 2020-10-07 16:16  石大庆  阅读(147)  评论(0)    收藏  举报