定点运算
一、移位运算
1、算数移位规则
正数:原码、补码、反码 填0;
负数:原码 填0; 补码 左移填0,右移填1; 反码 填1;
2、
对于正数,三种机器数移位后符号均不变,左移时最高数位丢1,结果出错;右移时最低位丢1,影响精度。
对于负数,三种机器数算数移位后符号位均不变。负数原码左移时,高位丢1,结果出错;右移时,低位丢1,影响精度。负数的补码左移时,高位丢0,结果出错
3、算术移位和逻辑移位的区别
算术移位:有符号数的移位。
逻辑移位:无符号数的移位。
逻辑左移:低位填0,高位移丢。
逻辑右移:高位填0,低位移丢。
二、加减法运算
1、补码加减运算公式
2、溢出判断
当运算结果超出机器数所能表示的范围时,称为溢出.显然,两个异号数相加或两个同号数相减,其结果是不会溢出的.仅当两个同号数相加或者两个异号数相减时,才有可能发溢出的情况,一旦溢出,运算结果就不正确了,因此必须将溢出的情况检查出来.判别方法有三种:
1〉当符号相同的两数相加时,如果结果的符号与加数(或被加数)不相同,则为溢出.
2〉当任意符号两数相加时,如果C=Cf,运算结果正确,其中C为数值最高位的进位,Cf为符号位的进位.如果C≠Cf ,则为溢出,所以溢出条件=C⊕Cf .
3〉采用双符号fs2fs1.正数的双符号位为00,负数的双符号位为11.符号位参与运算,当结果的两个符号位甲和乙不相同时,为溢出.所以溢出条件= fs2⊕fs1 ,或者溢出条件= fs2fs1 + fs2fs1
三、乘法运算
四、除法运算
五、算数逻辑单元
1、ALU电路 (组合逻辑电路)
针对每一种算术运算,都必须有一个相对应的基本硬件配置,其核心部件是加法器和寄存器。当需要完成逻辑运算时,势必需要配置相应的逻辑电路,而ALU电路是既能完成算术运算又能完成逻辑运算的部件。
ALU部件是运算器中的主要组成部分,又称多功能函数发生器,主要用于完成各种算术运算和逻辑运算.
ALU的算术运算部件包含加法器,减法器,乘法器,除法器,增量器(+1),减量器(-1),BCD码运算器等组件.
ALU的主要工作是根据CPU指令要求执行各种指定运算,如加法,减法,乘法,除法,比较,逻辑移位等操作.
2、快速进位链
(1)并行加法器
并行加法器由若干个全加器组成,为了提高运算速度,减少延迟时间,可以采用并行进位法,也叫提前进位或先行进位.
(2)串行进位链:是指并行加法器中的进位信号采用串行传递。
(3)并行进位链:是指并行加法器中的进位信号是同时产生的,又称先行进位、跳跃进位等。
1)单重分组跳跃进位:就是将n位全加器分成若干小组,小组内的进位同时产生,小组与小组之间采用串行进位,这种进位又有组内并行、组间串行之称。
2)双重分组跳跃进位:就是将n位全加器分成若干大组,每个大组又分成若干小组,而每个大组内所包含的各个小组的最高位进位是同时产生的,大组与大组间采用串行进位。