MIPS中改进的二进制除法算法

MIPS中改进的二进制除法算法,mips,division,integer-arithmetic,Mips,Division,Integer Arithmetic,MIPS中二进制除法的概念已在模式的计算机组织手册中解释过。然而,当我谈到改进的除法算法时,事情不是很清楚。考虑下面的图表。 在讨论32位整数时,我想知道1001010÷1000的寄存器大小是多少?以下是我的理解: 股息:1001010应为8位01001010 除数:1000应为8位00001000 那么图中的寄存器呢?除数32位应为8位,大64位余数寄存器应为16位。我说得对吗 现在的问题是,除数的值在寄存器中的什么位置?左上角或左下角由于我们将其向右移动,因此应将其初始化为10000000

MIPS中二进制除法的概念已在模式的计算机组织手册中解释过。然而,当我谈到改进的除法算法时,事情不是很清楚。考虑下面的图表。

在讨论32位整数时,我想知道
1001010÷1000
的寄存器大小是多少?以下是我的理解:

股息:
1001010
应为8位
01001010

除数:
1000
应为8位
00001000

那么图中的寄存器呢?除数32位应为8位,大64位余数寄存器应为16位。我说得对吗

现在的问题是,除数的值在寄存器中的什么位置?左上角或左下角由于我们将其向右移动,因此应将其初始化为
10000000

此外,大余数寄存器在标题状态时向左移位,但它也有一个向右移位的控制输入


有人能用一个工作示例来解释这个图表吗?

这似乎是一个关于硬件的问题,而不是关于编程的问题,因此Stackoverflow是一个离题的话题。如果这一点变得清晰,那么我们就可以用MIPS汇编语言来编程了。因此,在我看来,这并不是完全脱离主题。我会建议修改这个问题,使它明确地集中在编程上。如果问题主要是关于在双宽度寄存器(通常是软件的寄存器对)中组合商和余数,那么看看这似乎是一个关于硬件的问题,而不是编程的问题,因此与Stackoverflow无关。如果这一点变得清楚,那么我们可以用MIPS汇编语言编程。因此,在我看来,这并不是完全脱离主题。我会建议修改这个问题,使它明确地集中在编程上。如果问题主要是关于在双宽度寄存器(通常是软件的寄存器对)中组合商和余数,请看