半加器的功能是将两个1位二进制数相加。输入端口A、B,输出端口S(输出),C(进位)。spa
其有一个很明显的缺点:不能将低位的进位参与运算。3d
全加器由两个半加器构成。输入端口A、B、Cin,输出端口S(和)、Cout(进位输出)。blog
有了全加器,只要将它简单的连在一块儿就能实现多位的加法器。get
例如求 (1101)2 + (0110)2,答案应该为和为 (0011)2,进位为1.能够用4个全加器构成4-bit全加器来实现,如图it
显而易见,这个图能够推广,因此这样就能获得32-bit的加法器。原理
检查加法结果是否溢出硬件
溢出(overflow):是指运算结果超出了正常的表示范围二进制
4-bit运算时方法
溢出的检查方法im
“最高位的进位输入”不等于“最高位的进位输出”,说明产生了溢出。
通过一个异或门,若是C31和Cout 不相等,overflow被设为1,表示溢出。(为何能够经过这种方法判断呢?)
对溢出的处理方式
MIPS
提供对两种不一样指令分别的处理
X86
设有“溢出标志OF”(Overflow Flag)。若是把操做看做有符号数,若发生溢出,则自动设置OF=1;不然OF=0。
这实际上是一个加法和减法器,与以前的32-bit加法器相比,在输入端B多了一个二选一多路选择器,当sub-mode为0,是加法模式,也没有来自低位的进位;当sub-mode为1时,是减法模式,首先B按位取反,同此同时sub-mode为是低位的进位,恰好是-B = ~B + 1.
参考连接:https://www.coursera.org/learn/jisuanji-zucheng/lecture/ydYAV/305-jia-fa-he-jian-fa-de-shi-xian