组装64位64位除法

时间:2013-06-20 15:15:23

标签: assembly 64-bit division x86-16

如何在Assembly 8086中实现64位64位除法? 我已经使用.386指令启用了extendeed寄存器。

1 个答案:

答案 0 :(得分:0)

x86知道64 x 32位除法,余数和商数为32位结果 像这样

POP     EBX      ;DIVISOR
POP     EDX      ;MSW OF DIVIDEND
POP     EAX      ;LSW OF DIVIDEND
DIV     EBX      ;64/32 BIT DIVIDE
PUSH    EDX      ; remainder
PUSH    EAX      ; quotient

您不希望除以不适合32位的64位数字,因为这样会使精度至少降低10位。

如果你坚持不懈, 您可以据此构成64/64分度,然后分析您是否真的提出了。

如果您知道如何将2位十进制数除以2位十进制数(长除法),则可以使用上述方法完成将2位2 ^ 32基数除以2位2 ^ 32个基数。留给读者练习。