一、原码除法:加减交替法(不恢复余数法)
1.1 运算规则
① 符号位异或运算
② 被除数X ,除数Y均取绝对值的补码,且取双符号位
③ 被除数X初始值为 [ | X | ]补,第一步运算用[ | X | ]补减去[ | Y | ],即加[ -| Y | ]补
④ 运算加减时,遵循的规则
● 当余数为正时,表示够减(商上1)且在进行下一次商时,将余数左移一位,减去除数(+ [ - | Y | ]补)
● 当余数为负时,表示不够减(商上0)且在进行下一次商时,将余数左移一位,加上除数(+ [ | Y | ]补)
5.操作的步数n ,是由要求的n位商决定的,如果第n步 余数为负,则需增加一步恢复余数,即 + [ | Y | ] ,增加的这一步不移位
1.2 例题
二、补码除法:加减交替法
2.1 运算规则
① 被除数与除数同号,被除数减去除数;被除数与除数异号,被除数加上除数
② 余数和除数同号,商为1,余数左移一位,下次减除数;余数和除数异号,商为0,余数左移一位,下次加除数。
③ 重复步骤2,包括符号在内,工作n+1步
为了统一并简化控制线路,一开始就根据[x]补和[y]补的符号位是否相同上一次商q0。这位商q0不是真正的商的符号,故称其为假商(假商在最后的运算结果中是要去掉的)。如果[x]补和[y]补的符号位相同,商1,正好控制下次做减法:第一次一定不够减,才得到商的正确符号位q0=0;如果[x]补和[y]补的符号位不同,商0,正好控制下次做加法:第一次一定不够减,才得到商的正确符号位q0=1
显然,第一次商的假商q0只是为了除法做准备工作,共进行n+1次操作。最后,第一上的假商q0需要移除寄存器,而需要的位商数则保留在商数寄存器中。