如何在 Assembly 8086 中实现 64 位除以 64 位?我已经使用 .386 指令启用了扩展寄存器。
问问题
1591 次
1 回答
-1
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 divison,然后再分析你是否真的做到了。
如果您知道如何将 2 位十进制数除以 2 位十进制数(长除法),您可以使用上述方法完成将 2 位 2^32 基数除以 2 位 2^32 基数. 这留给读者作为练习。
于 2019-05-21T12:56:34.270 回答