**预习第三章运算方法和运算部件**
3·1高级语言和机器指令中的运算
3·1·1C程序中涉及的运算
1·按位运算(实现掩码操作)
(1)按位运算符:符号 | --按位OR运算;符号& --按位AND运算;符号~ --按位NOT;符号^ --按位XOR运算。
(2)掩码:通过给定的一个位模式进行按位与,可以提取所需的位,然后可以对这些位进行“置1”“清0”“1测试”或”0测试“等,这里的位模式被称为掩码。
2·逻辑运算
(1)逻辑运算符:符号|| --OR运算;符号&& --AND运算;符号! --NOT运算。
(2)与按位运算的区别:前者是非数值计算,,操作值只有:True,False,0表示True,1表示False;后者是一种数值计算,将两个操作数对应各二进位按照指定的逻辑运算规则进行计算。
3·移位运算
(1)逻辑移位(无符号整数):不考虑符号位,高(低)位移出,低(高)位补0。
(2)算术移位(带符号整数):左移时,高位移出,低位补0,若左移前后符号位不同,则发生溢出;右移时,低位移出,高位补相应的符号。
(3)x<<k数x左移k位,相当于数值乘以2的k次方
(4)x>>k数右移k位,相当于数值除以2的k次方。
4·位扩展与位截断运算
(1)对象:一个短数向长数转换;
(2)前提:扩展后,数值应保持不变;
(3)分类:0扩展和符号扩展,前者用于无符号数,只要在短的无符号数前面添加足够的0即可;后者用于补码表示的带符号整数,通过在短的带符号整数前添加足够多的符号位来扩展。
(4)注意:当一个长数足够大到短数无法表示的程度,截断会发生溢出,导致程序只会出现意外的计算结果,并不导致任何异常或错误报告,错误隐蔽性强。
MIPS指令中涉及的运算(课本p69)
(1)涉及的运算:按位逻辑运算,逻辑移位,算术移位,带符号整数的加减乘除,无符号整数的加减乘除,带符号数的扩展,无符号数的0的扩展,单精度浮点数加减乘除,双精度浮点数的加减乘除等。
3·2基本运算部件(加法器,ALU和移位器)
3·2·1串行进行加法器
(1)用处:全加器用来实现两个本位数加上低位进行位生成一位本位和以及一位向高位的进位;
(2)逻辑表达式:第i位的加法运算是指第i位的加数Xi,Yi和低位来的进位Ci-1三者相加,得到本位和Fi和第i位的进位输出Ci。
(3)图3·4所示的n位加法器,X与Y逐位相加,位间进位串传送,因此称为串行进位方式。
(4)行波进位加法器:像波纹一层层向外扩散,串行进位加法器中最低为C0就像小石头,它把进位逐步从低位扩展到最高位。这种串行进位加法器被称为行波进位加法器。
(5)优缺点:结构所用元件少,但进位传递时间较长。
3·2·2并行进位加法器
(1)Pi进位传递,Gi生成函数:
Pi含义:当Xi,Yi中有一个为1时,若有低位进位输入,则一定被传到高位,可看作低位进位越过本位直接向高位传递。
Gi含义:当当Xi,Yi均为1时,不管有无低位进位,本位一定向高位产生进位输出。
(2)先行进位(又称超前进位,简称CLA)如下:
其实现的加法器称为全先行进位加法器。
(3)其他:提高加法器的运算速度,进一步采用组内和组间都并行的进位方式,其延迟与加法器的位数无关。
3·2·3带标志加法器
(1)作用:进行无符号整数的加减运算,带符号数的加减运算,使得加法器不仅能够计算和差,还能生成相应的标志信息。
3·2·4算术逻辑部件
(1)ALU(核心部件:带标志的加法器)是一种能够进行多种算术运算与逻辑运算的组合逻辑电路,采用先行进位方式。通常形式如图3·7
(2)图3·8给出了能够完成三种运算”与“”或“和”加法“的ALU结构图,
(3)其他:他利用大量多路选择器来实现数据结构的快速移位,移位操作能够一次完成。
总结
(1)对于基本运算部件这章节,各种加法器的内容不懂,不能体会到它的具体作用,具体操作是如何进行的。