第三章预习
高级语言和机器指令中的运算
1 按位运算:符号|按位OR运算;符号&按位AND运算;符号~表示按位NOT运算;符号^按位XOR运算。
实现掩码操作:通过与给定的一个位模式进行按位与,可以提取所需要的位,对这些位进行“置1” “清0”等。
2 逻辑运算:符号||按位OR运算;符号&&表示AND运算;符号!表示NOT运算。
3 移位运算
逻辑移位:不考虑符号位,把高(低)位移出,低(高)补0.
算术移位:机器码采用有符号数,符号位不参与移位。
原码左移、右移都补0,原码算术移位:左移丢1,运算出错,右移丢1,影响精度。
正数中,原码,补码,反码左右移都补0,负数中,原码左右移补0,补码左移补0、右移补1,反码左右移补1。
4 位扩展和位截断运算
0扩展:用于无符号数,在短的无符号数前添加足够的0。
符号扩展:用于补码表示的带符号整数,在短的带符号整数前添加足够多的符号位
基本运算部件
串行进位加法器 并行进位加法器 带标志加法器 算术逻辑部件
定点数的运算
(只要涉及到加减运算一定是补码)
补码加法运算:
负数用补码表示后,可以和正数一样来处理,即当需要减去一个数x时,可以加上x对应的负数的补码[-x]补来代替
补码的加法公式:
小数:[x]补 + [y]补 = [x + y]补 (注:需要将mod 2 丢掉)
整数:[x]补 + [y]补 = [x + y]补 (注:需要将mod 2^(n+1) 丢掉)
注:符号位和数值位统一进行加法处理
补码减法运算公式
小数:[x]补 + [-y]补 = [x - y]补 (注:需要将mod 2 丢掉)
整数:[x]补 + [-y]补 = [x - y]补 (注:需要将mod 2^(n+1) 丢掉)
补码运算的基本规则:
1.运算的各个操作数均是补码表示,运算结果仍是补码
2.符号位与数值位一样参加 运算
3.若求和,则将两补码数直接相加,得到两数之和的补码;若求差,则将减数变成补码(由[y]补求[-y]补),然后与被减数相加,得到两数之差的补码
4.补码是对于确定的模而言,若运算结果超过模(有从符号位上产生的进位),则将模自动丢掉。
定点数的乘法:
1.乘积的符号位进行异或(相同得0即为正,不同得1即为负),确定数值的符号位
2.数值部分按绝对值相乘
定点数的除法:
1.符号位进行异或(相同得0即为正,不同得1即为负),确定数值的符号位
2.数值部分按绝对值相除。
浮点数运算
1.浮点数加减运算
对阶、尾数运算、规格化、舍入处理、溢出判断
2.浮点数乘除运算
先进行判0处理,规格化操作和溢出判断
1.乘法运算:尾数相乘,指数相加;尾数规格化;尾数舍入处理;溢出判断浮点数除法运算。
2.除法运算:尾数相除,阶相减;尾数规格化;尾数舍入处理;溢出判断。

浙公网安备 33010602011771号