预习第三章
运算方法和运算部件
高级语言和机器指令的运算
C程序中涉及的运算
C中包含算术运算、按位运算、逻辑运算、移位运算、位扩展和位截断运算。
- 1.按位运算
符号|表示按位OR运算;
符号&表示按位AND运算;
符号~表示按位NOT运算;
符号^表示按位XOR运算。 - 2.逻辑运算
符号||表示OR运算;
符号&&表示AND运算;
符号!表示NOT运算。
逻辑运算是非数值计算,其操作数只有两个逻辑值:True和False,通常用非0表示True,全0表示False。 - 3.移位运算
移位操作有逻辑移位和算术移位两种。
++ 逻辑移位:不考虑符号位,总是把高(低)位移出,低(高)位补0.对于无符号整数的逻辑左移,如果最高位移出的是1,则发生溢出。
++ 算术移位:左移时,高位移出,低位补0,每移一位,如果移出的高位不同于移位后的符号位,即左移前、后符号为不同,则发生溢出;右移时,低位移出,高位补符号位。
每左移一位,相当于数值扩大一倍,所以左移可能发生溢出,左移K位,相当于数值乘2^k;
每右移一位,相当于数值缩小一半,右移K位,相当于数值除以2^k。 - 4.位扩展和位截断运算
进行位扩展时,扩展后的数值应保持不变。两种方法:0扩展和符号扩展。
0扩展:用于无符号数,只要在端的无符号数面前添加足够0即可;
符号扩展:用于补码表示的带符号整数。通过在短的带符号整数前面添加足够多的符号位来扩展。
截断一个数可能会因为溢出而改变它的值。因此长数的表示范围远远大于短数的表示范围,所以当一个长数足够大到短数无法表示的程度,则截断时就会发生溢出。
MIPS指令中涉及的运算
MIPS指令中涉及的运算有按位逻辑运算、逻辑移位、算术移位、带符号整数的加减乘除、无符号整数加减乘除、带符号整数的符号扩展、无符号数的0扩展、单精度浮点数加减乘除、双精度浮点数加减乘除等。
基本运算部件
基本运算部件是加法器、ALU和移位器,ALU的核心部件是加法器。
串行进行加法器
全加器用来实现两个本位数加上低位进行位生成一位本位和以及一位向高位的进位;
逻辑表达式:第i位的加法运算是指第i位的加数Xi,Yi和低位来的进位Ci-1三者相加,得到本位和Fi和第i位的进位输出Ci。

图3·4所示的n位加法器,X与Y逐位相加,位间进位串传送,因此称为串行进位方式。

行波进位加法器:像波纹一层层向外扩散,串行进位加法器中最低为C0就像小石头,它把进位逐步从低位扩展到最高位。这种串行进位加法器被称为行波进位加法器。
优缺点:结构所用元件少,但进位传递时间较长。
并行进位加法器
Pi进位传递,Gi生成函数:

Pi含义:当Xi,Yi中有一个为1时,若有低位进位输入,则一定被传到高位,可看作低位进位越过本位直接向高位传递。
Gi含义:当当Xi,Yi均为1时,不管有无低位进位,本位一定向高位产生进位输出。
先行进位(又称超前进位,简称CLA)如下:

其实现的加法器称为全先行进位加法器。
提高加法器的运算速度,进一步采用组内和组间都并行的进位方式,其延迟与加法器的位数无关。
带标志加法器
作用:进行无符号整数的加减运算,带符号数的加减运算,使得加法器不仅能够计算和差,还能生成相应的标志信息。

算术逻辑部件
ALU(核心部件:带标志的加法器)是一种能够进行多种算术运算与逻辑运算的组合逻辑电路,采用先行进位方式。通常形式如图3·7
图3·8给出了能够完成三种运算”与“”或“和”加法“的ALU结构图,

他利用大量多路选择器来实现数据结构的快速移位,移位操作能够一次完成。
总结:
运算感觉懂了,但是做题还是有问题,各种加法器有点不明白。
浙公网安备 33010602011771号