Assuming the operations are being done at run-time ...
Internally, both * and */ do the same 16x16 bit multiplication, and the system variables contain the same 32-bit "product".
For the mid-word multiplier, the middle two bytes are then copied to the result variable, in this case rpm.
That result is then discarded and rpm is assigned the value from the DIV32, which used the 32-bit value in the system variables, not the mid-word value.
Code:
rpm=6000*/10000 ; <-- This result in rpm is discarded
rpm=div32 time
The same thing applies to the High-Word multiplier **.
Bookmarks