Это связано с выводами байт-кодов. В мире до 80286 было слишком много опкодов, поэтому инженеры Intel находили способы преодолеть эту проблему. Одним из решений было расширение части байт-кода, которая указывает операцию (умножение в этом случае) на часть байт-кода, которая кодировала первый операнд. Это явно означало, что только один операнд мог бы поддерживаться при выполнении кода операции MUL. Поскольку для умножения требуются два операнда, они решили проблему путем жесткого кодирования в процессор, чтобы первым операндом всегда был eax-регистр. Более поздние процессоры поддерживали bytecodes, которые были нескольких длин, что позволяло им кодировать больше данных в одну команду. Это позволило им сделать код операции IMUL намного более полезным.
Сегодня существует интересная параллель с истечением IP-адресов.
Это не значит, что NASM не поддерживает его - на процессоре подписанная версия инструкции просто поддерживает больше вариантов, чем неподписанная версия.