MMX-команды умножения попарно перемножают 16-разрядные слова операндов, что дает четыре 32-разрядных произведения.
Команда pmaddwd складывает первое произведение со вторым, а третье с четвертым. Суммы записываются в 32-разрядные слова выходного операнда.
Команда pmulhw записывает в 16-разрядные слова выходного операнда старшие разряды каждого из четырех произведений, а pmullw - младшие разряды произведений.
Для получения информации о конкретной команде щелкните мышкой на названии команды:

Команда pmaddwd (циклическая арифметика)
Команда pmaddwd попарно перемножает 16-разрядные слова со знаком входного и выходного операндов. Это дает четыре 32-разрядных произведения. Затем первое произведение складывается со вторым, а третье с четвертым. Суммы записываются в 32-разрядные слова выходного операнда. Если все слова на входе равны 8000h, результатом будет 80000000h (это единственный случай, когда перемножение отрицательных чисел дает отрицательный результат).
Входной операнд может находиться в MMX-регистре или в памяти;
выходной операнд должен находиться в MMX-регистре.
back Возврат к началу темы

Команда pmulhw (циклическая арифметика)
Команда pmulhw попарно перемножает 16-разрядные слова со знаком входного и выходного операндов, что дает четыре 32-разрядных произведения. Старшие разряды произведений записываются в 16-разрядные слова выходного операнда. Младшие разряды произведений теряются.
Входной операнд может находиться в MMX-регистре или в памяти;
выходной операнд должен находиться в MMX-регистре.

back Возврат к началу темы

Команда pmullw (циклическая арифметика)
Команда pmullw попарно перемножает 16-разрядные слова со знаком входного и выходного операндов, что дает четыре 32-разрядных произведения. Младшие разряды произведений записываются в 16-разрядные слова выходного операнда. Старшие разряды произведений теряются.
Входной операнд может находиться в MMX-регистре или в памяти;
выходной операнд должен находиться в MMX-регистре.

back Возврат к началу темы