13.有符号数乘法的基本电路结
1.被乘数存放在被乘数寄存器X中,乘数存放在乘数寄存器Y中
2.乘积寄存器位P数和被乘数寄存器X、乘数寄存器Y相同,逻辑上乘积寄存器P、乘数寄存器Y和辅助位是连在一起使用的(即算数右移时,原乘积寄存器的最低位作为现乘数寄存器的最高位,原乘数寄存器的最低位作为现辅助位,辅助位舍弃)
3.ALU主要实现加法运算:根据辅助位和乘数寄存器的最低位进行加/减法
A.辅助位 - 乘数寄存器最低位 = 1,乘积寄存器 + X的补码
B.辅助位 - 乘数寄存器最低位 = 0,不做加法
C.辅助位 - 乘数寄存器最低位 = -1,乘积寄存器 + (-X)的补码(逻辑减法,实际加法)
4.ALU计算完成并输出数据后,进行算数右移(用符号位补空位)
5.控制逻辑发出加、右移和写使能控制信号;设乘数和被乘数位n位,则计数器从n开始计数,进行n轮加法、右移,每进行一轮加法和右移后,计数器 - 1
6.两个n位数相乘,结果用2n位暂存,结果最终保留的是乘数寄存器中的n bit,乘积寄存器舍弃。若高n + 1 bit为全0或全1,则不溢出;否则,溢出
7.初始状态:被乘数寄存器X为1101,乘数寄存器为1101,乘积寄存器和辅助位设为0,计数器设置为4,即进行4轮加法和算数右移
①.进行第一轮加法:
Ⅰ.辅助位 (0)- Y最低位(1)= -1,控制逻辑发出减法信号,则P输入到ALU左边,被乘数寄存器X的补码输入到ALU右边
Ⅱ.ALU计算结果输出到P中
进行第一轮算数右移:用符号位补空位
第一轮加法、右移完成后,计数器 - 1 = 3
②进行第二轮加法:辅助位 (1)- Y最低位(1)= 0,控制逻辑不发出加/减
进行第二轮右移:
第二轮加法、右移完成后,计数器 - 1 = 2
③进行第三轮加法:
进行第三轮加法:辅助位 (1)- Y最低位(1)= 0,控制逻辑不发出加/减
进行第三轮右移
第三轮加法、右移完成后,计数器 - 1 = 1
④进行第四轮加法:
Ⅰ.辅助位 (1)- Y最低位(0)= 1,控制逻辑发出加信号,则P输入到ALU左边,被乘数寄存器X输入到ALU右边
Ⅱ.ALU计算结果输出到P中
进行第四轮右移:
第四轮加法、右移完成后,计数器 - 1 = 0
⑤此时,乘法计算结束,4bit * 4bit = 8bit存储(不计算辅助位),得到最终结果1110 1011 = -21,若只保留乘数寄存器内的n bit,则高n + 1位为1110 1,不为全0或者全1,则发生溢出
14.除法电路的基本电路
定点小数除法:
定点整数除法: