I'm not experienced with asm, so I might not understand your code correctly, but from what it looks like to me is, that you divide D1 with D2, where D2 is a division of 35469/160, which have a remainder.
The math can be rewritten:
A / (B / C) = (A * C) / B > ( D1 * 160 ) / 35469
Assuming that A * C does not overflow you have removed the imprecision of one division.
Last edited by MSL; 30 May 2011 at 15:21.
Reason: Spelling mistake
