1. 十进制除法的运算过程
这里选取两个特殊的十进制数来演示除法的运算过程,如下图所示,
十进制数除法的运算过程
2. 二进制除法的运算过程
二进制除法的运算过程与十进制的除法类似,如下图所示,
<1> 因为被除数和除数总是在做减法运算,且最终结果是余数,因此令被除数和除数共用一个寄存器
<2> 和乘法相反,如果被除数寄存器是8-bit的,那就约定商和除数寄存器都是4-bit的
<3> 第1轮,将除数与被除数高位对齐,发现被除数“不够减”,因此商寄存器的最低位填0,除数寄存器右移1-bit
<4> 第2轮,被除数仍然“不够减”,因此商寄存器左移移位,低位填0,除数寄存器右移1-bit
<5> 第3轮,与第2轮相同,被除数仍然“不够减”,因此商寄存器左移移位,低位填0,除数寄存器右移1-bit
<6> 第4轮,此时被除数可以减去除数,因此商寄存器左移1位,低位填1,被除数寄存器(余数寄存器)减去除数得到余数的中间结果8'b0000_0011,除数寄存器右移1-bit
<7> 第5轮,余数寄存器中的数依然“够减”除数,因此商寄存器左移1位,低位填1,得到商寄存器的最终结果。余数寄存器减去除数,得到余数的最终结果。
二进制除法的运算过程