📜  符号幅度表示中的除法算法

📅  最后修改于: 2021-08-27 17:48:49             🧑  作者: Mango

有符号幅度表示形式中的两个定点二进制数的除法是通过连续比较,移位和减法运算的循环完成的。

由于商数为0或1,因此二元除法比十进制除法更容易。而且,无需估计被除数或部分余数适应除数的次数。

硬件实现:

除法运算中的硬件实现与乘法所需的硬件实现相同,并且由以下组件组成–

  • 此处,寄存器B用于存储除数,双倍除数存储在寄存器A和Q中
  • 相对幅度的信息以E给出。
  • 序列计数器寄存器(SC)用于存储被除数中的位数。

部门流程图:

  • 最初,股息在A&Q中,除数在B中。
  • 结果的符号被转换为Q,成为商的一部分。然后,在SC中设置一个常数以指定商中的位数。
  • 由于必须将操作数与符号一起保存,因此该符号将占用该字的一位,其大小将由n -1位组成。
  • 通过从A中存储的红利的一半减去B中的除数来检查分频溢出的条件。如果A≥B,则DVF被置位,并且运算在时间之前终止。如果A
  • 幅度的除法从AQ中的shl分频开始,向左移至E的高阶位。
    (注–如果移入E等于1,我们知道EA> B,因为EA包含1,后跟n -1位,而B仅包含n -1位)。在这种情况下,对于商位,必须从EA中减去B,并在Q中插入1。
  • 如果左移运算(shl)在E中插入0,则除数将其2的补码值相减,并且进位被移入E。如果E = 1,则表示A≥B;如果E = 1,则表示E≥B。因此,将Q设置为1。如果E = 0,则表示A
  • 现在,对包含部分余数的寄存器A重复此过程。

使用数字硬件进行二进制除法的示例:

除数B = 10001,股利A = 0111000000

最后剩余: 00110