В x86 процессорах операция целочисленного умножения с учётом знака IMUL может осуществляться в любом из 8 регистров общего назначения. А операция беззнакового целочисленного умножения MUL приделана только к регистру eax (с хвостом в edx).

Причём в 64-битном варианте тоже самое IMUL - везде (16 регистров), MUL -только в регистре rax (с хвостом в rdx).

Почему так?