第三章的预习笔记
高级语言和机器指令中的运算
- 按位运算:符号|按位OR运算;符号&按位AND运算;符号~表示按位NOT运算;符号^按位XOR运算。
实现掩码操作:通过与给定的一个位模式进行按位与,可以提取所需要的位,对这些位进行“置1” “清0”等。 - 逻辑运算:符号||按位OR运算;符号&&表示AND运算;符号!表示NOT运算。
- 移位运算
逻辑移位:不考虑符号位,把高(低)位移出,低(高)补0.
算术移位:机器码采用有符号数,符号位不参与移位。
原码左移、右移都补0,原码算术移位:左移丢1,运算出错,右移丢1,影响精度。
正数中,原码,补码,反码左右移都补0,负数中,原码左右移补0,补码左移补0、右移补1,反码左右移补1。 - 位扩展和位截断运算
0扩展:用于无符号数,在短的无符号数前添加足够的0。
符号扩展:用于补码表示的带符号整数,在短的带符号整数前添加足够多的符号位
基本运算部件 加法器、ALU(核心部件是加法器)和移位器
1.将一块小石头扔进平静的水中,泛起的波纹会向外一圈一圈逐步扩散,串行进位加法器中最低进位Co 就像一块小石头,它把进位逐步从低位扩展到最高位,所以称这种串行进位加法器为行波进位加法器(Carry Ripple Adder ,CRA)最后一位和数 Fn 的延迟时间为 2n+1 级门延迟【2(n-1)+ 3】,加法运算时间随两个加数位数 n 的增加而增加。当 n 较大时,串行进位的加法器速度将显著变慢。
2.并行进位加法器
实现上述逻辑表达式的电路称为先行进位(也称超前进位)部件(Carry Lookahead Unit),简称CLA 部件,通过这种进位方式实现的加法器称为全先行进位加法器
3.带标志加法器
n 位无符号数加法器只能用于两个n位二进制数相加,不能进行无符号数的减运算,也不能进行带符号数的加/减运算。如果要实现这种功能的话,还需要在无符号数加法器的基础上增加相应的逻辑门电路,使得加法器不仅能计算和/差,还要能够生成相应的标志信息。
定点数的运算
定点数的运算
(只要涉及到加减运算一定是补码)
补码加法运算:
负数用补码表示后,可以和正数一样来处理,即当需要减去一个数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号