@Inginsub in this example, dw0h, dw0l, dw1h, dw1l are 16bits, correct? and their multiplications would yield 32bit (stored in dx:ax) results right? like this
dw0h:dw0l * dw1h:dw1l (16:16 * 16:16) high: whole low: fractionaland piecewise multiplication would look like this:
16 * 16 = dx:ax ----------------------------- dw0h*dw1h = resultAh:resultAl dw0h*dw1l = resultBh:resultBl dw1h*dw0l = resultCh:resultCl dw0l*dw1l = resultDh:resultDland so the sum, after multiplying, would look like this:
------------------------------------- whole | fractional ------------------------------------- 16 | 16 | 16 | 16 highest | higher | lower | lowest ------------------------------------- resultAh:resultAl:00000000:00000000 + resultBh:resultBl:00000000 + resultCh:resultCl:00000000 + resultDh:resultDl +for which we will discard the "lowest" dword, and the "lower" dword is the fractional part
did i understand correctly?