用于无符号整数的恢复除法算法2025年3月17日 | 阅读 3 分钟 恢复除法通常在定点小数上执行。当我们在两个数字上执行除法运算时,除法算法将为我们提供两样东西,即商和余数。该算法基于 0 < D < N 的假设。借助数字集 {0, 1},商位 q 将在恢复除法算法中形成。除法算法通常有两种类型,即快速算法和慢速算法。Goldschmidt 和 Newton-Raphson 是快速除法算法的类型,而 STR 算法、恢复算法、非执行算法和非恢复算法是慢速除法算法的类型。 在本节中,我们将借助无符号整数执行恢复算法。我们使用恢复一词是因为我们知道寄存器 A 的值将在每次迭代后恢复。我们还将尝试使用流程图解决此问题并应用位运算。 ![]() 在这里,寄存器 Q 用于包含商,寄存器 A 用于包含余数。这里,除数将被加载到寄存器 M 中,n 位被除数将被加载到寄存器 Q 中。0 是寄存器的起始值。这些类型的寄存器的值在迭代时被恢复。这就是它被称为恢复的原因。 ![]() 现在我们将学习恢复除法算法的一些步骤,如下所示 步骤 1: 在此步骤中,相应的值将被初始化到寄存器中,即寄存器 A 将包含值 0,寄存器 M 将包含除数,寄存器 Q 将包含被除数,N 用于指定被除数中的位数。 步骤 2: 在此步骤中,寄存器 A 和寄存器 Q 将被视为一个单元,并且两个寄存器的值都将左移。 步骤 3: 之后,寄存器 M 的值将从寄存器 A 中减去。减法的结果将存储在寄存器 A 中。 步骤 4: 现在,检查寄存器 A 的最高有效位。如果寄存器 A 的此位为 0,则寄存器 Q 的最低有效位将设置为值 1。如果 A 的最高有效位为 1,则寄存器 Q 的最低有效位将设置为值 0,并恢复 A 的值,这意味着它将恢复减去 M 之前的寄存器 A 的值。 步骤 5: 之后,N 的值将递减。这里 n 用作计数器。 步骤 6: 现在,如果 N 的值为 0,我们将中断循环。否则,我们必须再次转到步骤 2。 步骤 7: 这是最后一步。在此步骤中,商包含在寄存器 Q 中,余数包含在寄存器 A 中。 例如 在这个例子中,我们将执行一个除法恢复算法。
因此,我们不应忘记恢复 A 的最高有效位的值,即 1。因此,寄存器 A 包含余数 2,寄存器 Q 包含商 3。 下一个主题调试机器级程序 |
我们请求您订阅我们的新闻通讯以获取最新更新。