Разделы:


Best links:

Система команд ммх-расширения

ImageImage

Рис. 3.8. Выполнение команды распаковки punpcklwd MM0,MM1.

Суть работы команд punpcklbw и punpckldq аналогична, с той разницей, что punpcklbw распаковывает младшие четыре байта, а punpckldq – младшие двойные слова.

Специальные команды не имеют специфики какой-либо из рассмотренных выше групп.

Команды pavgb, pavdw - вычисляют среднее значение двух чисел, представленных байтами или словами. Значения операндов рассматриваются как беззнаковые целые числа. В качестве входного операнда может выступать ММХ-регистр или 64-разрядная ячейка памяти, выходным операндом служит один из ММХ-регистров.

Команда pextrw - извлекает одно из четырех упакованных слов входного операнда и имеет три аргумента: входной операнд, выходной операнд и маска. Младшие два бита маски задают во входном операнде номер упакованного слова, подлежащего извлечению. Извлеченное слово сохраняется в младшем слове выходного операнда. Выходным операндом этой команды может выступать один из 32-разрядных регистров общего назначения. Старшее слово выходного операнда обнуляется.

Команда pinsrw - вставляет слово в одно из четырех упакованных слов выходного операнда. Выходным операндом является один из ММХ-регистров, а входным операндом может выступать один из 32-разрядных регистров общего назначения, младшее слово которого будет вставлено в выходной операнд. Номер позиции, куда помещается операнд, определяется младшими двумя битами маски.

Команды pmaxusb, pmaxsw, (pminusb, pminsw)- извлекают максимальное (минимальное) значение из каждой пары упакованных элементов в выходном и входном операндах. В качестве выходного операнда может выступать ММХ-регистр, а в качестве входного - ММХ-регистр или 64-разрядная ячейка памяти.

предыдущаяследующая