计组之数据运算:7、定点数原码除法运算(恢复余数法、加减交替法)

思维导图

计组之数据运算:7、定点数原码除法运算(恢复余数法、加减交替法)

原码恢复余数法

先看一下十进制除法的原理
计组之数据运算:7、定点数原码除法运算(恢复余数法、加减交替法)

1、x / y = a …… b 等价于x = ay + b

原理实现(类比十进制)

计组之数据运算:7、定点数原码除法运算(恢复余数法、加减交替法)

机器实现与硬件构成

1、初始化
计组之数据运算:7、定点数原码除法运算(恢复余数法、加减交替法)2、结果(中间省略)
计组之数据运算:7、定点数原码除法运算(恢复余数法、加减交替法)

1、当数据就位后,商的最低位上1,被除数-除数的值放入ACC
2、判断正负,若为正,说明上1够减,此时ACC与MQ逻辑左移;若ACC值为负时,说明上1不够减,则将商的最低位改为0,然后将ACC与除数相加的结果放回到ACC中,然后逻辑右移
3、循环1,2操作,直到商等于除数数值位数为止。

手算实现

计组之数据运算:7、定点数原码除法运算(恢复余数法、加减交替法)

1、先减[y],余数为负,商上0,然后加[y]~补 ~,最后逻辑左移;若余数为正,直接逻辑左移。
2、循环1操作,直到次数为除数数值位数即可

缺点

总是要恢复余数,效率有点低,所以产生了加减交替法

原码加减交替法

分析

计组之数据运算:7、定点数原码除法运算(恢复余数法、加减交替法)

手算实现

计组之数据运算:7、定点数原码除法运算(恢复余数法、加减交替法)计组之数据运算:7、定点数原码除法运算(恢复余数法、加减交替法)

若最后一次结果为负,任需一次恢复余数。

补码加减交替法

计组之数据运算:7、定点数原码除法运算(恢复余数法、加减交替法)

对比

计组之数据运算:7、定点数原码除法运算(恢复余数法、加减交替法)