“补码的加、减法”是由一个电路系统进行逻辑实现的,以下其分为加法实现分析、减法实现分析、溢出方法分析、其他位分析四个部分进行解析,逻辑框图如下所示:
如上图所示,在最右侧,输入P=0代表进行加法运算;xn-1、yn-1表示输入;∑0代表一位全加器,作用是将输入其中的数字0、1进行求和;Cn=1,代表求减法时送入一位全加器进行一次求补操作;Sn-1为和的输出端;yn-1、p均与异或门相连接,xn-1、异或门、p均向一位全加器输入数字。
(1)“加法实现”分析
进行加法运算时:
①设yn-1=0,加法运算p=0,yn-1和p输入的数值通过异或门的转换得到的数值为0,又因为yn-1=0,则通过异或门得到的0实际上相当于yn-1=0本身,之后xn-1、p再送入数值一位全加器中与通过异或门转换得到的0相加,实现了加法运算;
②设yn-1=1,加法运算p=0,yn-1和p输入的数值通过异或门的转换得到的数值为1,又因为yn-1=1,则通过异或门得到的1实际上相当于yn-1=1本身,之后xn-1、p再送入一位全加器中与通过异或门转换得到的1相加,实现了加法运算;
通过上述分析,表明了采用补码进行加法计算的逻辑过程。
(2)“减法实现”分析
进行减法运算时:
①设yn-1=0,减法运算p=1,yn-1和p输入的数值通过异或门的转换得到的数值为1,又因为yn-1=0,则通过异或门得到的1实际上相当于yn-1=0自身取反得到yn-1=1,之后xn-1输入数值、p=1触发Cn=1再送入一位全加器中与通过异或门转换得到的1相加,整个过程相当于对原码取反+1得到补码进行计算,结果通过Sn-1端输出,实现了减法变加法运算;
②设yn-1=1,减法运算p=1,yn-1和p输入的数值通过异或门的转换得到的数值为0,又因为yn-1=1,则通过异或门得到的1实际上相当于yn-1=1自身取反得到yn-1=0,之后xn-1输入数值、p=1触发Cn=1再送入一位全加器中与通过异或门转换得到的0相加,整个过程相当于对原码取反+1得到补码进行计算,结果通过Sn-1端输出,实现了减法变加法运算;
通过上述分析,表明了采用补码将减法变成加法进行计算的逻辑过程。
(3)“溢出方法”分析:
在图中最左侧,V端为溢出指示端,当符号位通过异或门得到V=1时有溢出,由V端发出相应的电信号提醒溢出并表明溢出类型;当符号位通过异或门得到V=0时无溢出。
(4)“其他位分析”:
S0-Sn-1作用相同为输出端;x1-xn-2、y1-yn-2与xn-1,yn-1作用相同表示输入;作用是将C0-Cn-1与Cn作用相同,均在减法运算时提供1进行求补操作;x0、y0为符号位;最左侧寄存器C用于存储符号位x0产生的进位,即模值,并自动舍弃。