预习第三章

高级语言和机器指令运算

C中涉及的基本运算类型:算术运算,按位运算,逻辑运算,移位运算,位扩展和位截断运算。
1.按位运算:符号|表示按位or运算;符号&表示按位and运算;符号~表示按位not运算;符号^表示按位xor运算.
2.逻辑运算:符号||表示按位or运算;符号&&表示按位and运算;符号!表示按位not运算。
3.移位运算:移位操作有逻辑移位和算术移位。逻辑移位不考虑符号位,总是把高(低)位移出,低(高)位补0.对于无符号整数的逻辑左移,如果最高位移出的是1,则发生溢出。对于带符号整数使用补码 算术移位方式。左移时,高位移出,低位补0,若左移前后符号位不同则发生溢出;右移时,低位移出,高位补符号。
4.位扩展和位截断运算:短数向长数转换时需要进行位扩展运算,扩展后的数值应该保持不变。扩展方式:0扩展和符号扩展。0扩展用于无符号数,只要在短的无符号数前添加足够的0即可;符号扩展用于补码表示的带符号整数,通过在短的带符号整数前添加足够多的符号位来扩展。
-MIPS指令系统涉及的运算有按位逻辑运算,逻辑移位,算术移位,有无符号整数的加减乘除带符号整数的符号扩展,无符号数的0扩展,单双精度浮点数的加减乘除等。

基本运算部件

串行进位加法器

串行进位方式:对于图3.4所示的n位加法器,X与Y逐位相加,位间进位串行传送。
行波进位加法器:串行进位加法器中的最低位C0,它把进位逐步从低位扩展到最高位。
加法运算时间随两个加数位数n的增加而增加。当n较大时,串行进位的加法器将显著变慢。
并行进位加法器


带标志加法器

要能够进行无符号整数的加减运算和带符号整数的加减运算,还需要在无符号数加法器的基础上增加相应的逻辑门电路,使加法器不仅能计算和差还能生成相应的标志性息。
算术逻辑部件

定点数运算

补码的加减运算

加法:[X]补+[Y]补=[X+Y]补(mod 2^n)
减法:[X]补+[-Y]补=[X-Y]补=[X+(-Y)]补(mod 2^n)
符号相异的数相加、符号相同的数相减,不可能发生溢出。
符号相同的数相加、符号相异的数相减,可能发生溢出。
判断是否发生溢出:
1.符号位判断:两正数相加得到负数,或两负数相加得到正数时发生溢出。
2.进位位相异或:次高位进位和最高位进位进行异或,结果为1,则表示溢出。
3.扩充运算位数:将运算数的符号位设置为00(正数)或11(负数),如果结果的符号位不是00或11,而是01或10则可判断发生溢出。

原码的加减运算

比较两个操作数的符号,对加法实行“同号求和,异号求差”,对减法实行“异号求和,同号求差”。
求和时,数值位相加,若最高位产生进位则结果溢出,和的符号位取被加数(被减数)的符号。
求差时,被加数(被减数)数值位加上加数(被减数)数值位的补码。

移码的加减运算

移码的和、差等于和、差的补码。

原码的乘法运算

原码一位乘法
确定乘积的符号位,由两个乘数的符号异或得到。
计算乘积的数值位,乘积的数值部分为两个乘数的数值部分之积。
原码二位乘法
对乘数的每两位取值情况进行判断,使每步求出对应于该两位的部分积,则可将乘法速度提高一倍。

posted on 2020-10-07 20:37  王子威Zev  阅读(179)  评论(0编辑  收藏  举报