MIPS中二进制除法的概念已在Pattern的计算机组织手册中进行了解释。但是,当我谈到改进的除法算法时,事情并不是很清楚。请考虑下图。
在讨论32位整数时,我想知道1001010÷1000
的寄存器大小是多少?以下是我的理解:
红利:1001010
应为8位0100,1010
除数:1000
应为8位0000,1000
现在图中的寄存器怎么样?除数32位应为8位,大64位余数寄存器应为16位。我是对的吗?
现在的问题是,将除数的值放在寄存器中的哪里?由于我们将其向右移动,因此左侧或左侧较高,应将其初始化为1000,0000
。
此外,大余数寄存器在标题状态下向左移位,但它也有一个右移控制输入。
有人可以用一个有效的例子来解释这个图吗?