Function:
MUL multiplies ax with a 16-bit operand to form a 32-bit result in dx:ax.
The 32-bit version multiplies eax with a 32-bit operand to form a 64-bit
result in edx:eax.
Some 386es have a problem which redirects output from the 32-bit MUL
to the wrong parts of the wrong registers.
Typically the following happens:
Properly operating 32-bit version: Properly operating 16-bit version: