Разделы:
Best links:
Система команд ммх-расширения
последовательность шагов:
· получить старшие 16 бит произведения, используя команду pmulhw.
· получить младшие 16 бит произведения, используя команду pmullw.
· объединить частичные результаты в одно двойное слово с помощью команд punpckhwd и punpcklwd.
Команда pmaddwd - попарное умножение 16-разрядных слов со знаком, находящихся в двух операндах. После получения в результате четырех 32-разрядных произведений первое произведение складывается со вторым, а третье - с четвертым. Суммы записываются в 32-разрядные слова выходного операнда. Работа команды pmaddwd ММ0,ММ1 проиллюстрирована на рис. 3.5.

Рис. 3.5. Умножение по команде ppaddwd MM0,MM1
Команды сравнения попарно сравнивают элементы данных (байты, 16- или 32-разрядные слова) входного и выходного операндов и в зависимости от результата сравнения соответствующий элемент данных выходного операнда заполняется нулями либо единицами. Входным операндом могут выступать ММХ-регистр или ячейка памяти, а выходной операнд должен находиться в ММХ-регистре.
Команды pcmpeqb, pcmpeqw, pcmpeqd заполняют элемент данных выходного операнда единицами, если соответствующие элементы равны и нулями, в противном случае.
Команды pcmpgtb, pcmpgtw, pcmpgtd заполняют элемент данных выходного операнда единицами, если соответствующий элемент данных выходного операнда больше соответствующего входного элемента и нулями, в противном случае.
Сдвиги и логические команды.
Команды сдвига выполняют сдвиг каждого элемента данных (16-, 32- или 64-разрядного слова) в выходном операнде на величину, задаваемую входным операндом. Входной операнд может быть непосредственным операндом либо находиться в ММХ-регистре или в памяти. Выходной операнд должен находиться в ММХ-регистре.
предыдущаяследующая© Copyright, 2009.
Для связи: info@dgs-srl.com.