Команды умножения — одноадресные. Указывается только SRC (множитель); DST (множимое) задается строго определенным образом.
l MUL src — умножение (multiply — умножение без знака). Выполняет умножение беззнакового множимого (8 или 16 битов) на беззнаковый множитель (8 или 16 битов). Команда одноадресная — указывается только SRC (множитель); DST (множимое) берется строго определенным образом. SRC может быть представлен оператором типа r или m (i — нельзя). Если формат SRC — байт, то множимое (байт) находится в AL, произведение (слово) будет в AX; если формат SRC — слово, то множимое (слово) извлекается из AX, произведение (двойное слово) помещается в DX:AX (старшие два байта в DX, младшие — в AX). Команда MUL формирует флаги CF, OF; воздействует на флаги AF, PF, SF, ZF (флаги не определены).
l IMUL src — целое умножение знаковых чисел (integer multiply — умножение целых со знаком). Выполняет умножение знакового множимого (8 или 16 битов) на знаковый множитель (8 или 16 битов). Команда одноадресная — указывается только SRC (множитель); DST (множимое) берется строго определенным образом. SRC может быть представлен оператором типа r или m (i — не допускается). Если формат SRC — байт, то множимое (байт) извлекается из AL, произведение (слово) будет в AX; если формат SRC — слово, то множимое (слово) находится в AX, произведение (двойное слово) заносится в DX:AX (старшие два байта результата в DX, младшие — в AX). Команда IMUL формирует флаги CF, OF; воздействует на флаги AF, PF, SF, ZF (флаги не определены).