Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛК_МашЗавЯП_А4.doc
Скачиваний:
157
Добавлен:
10.06.2015
Размер:
19.94 Mб
Скачать
      1. Распаковка данных

MMX-команды распаковки попарно объединяют элементы данных из обоих операндов в более длинные элементы выходного операнда. Этими командами можно пользоваться для увеличения числа значащих разрядов при вычислениях.

Мнемоника

Описание

PUNPCKHBW

P UNPaCK High packed Byfes to Words

Распаковывает старшие части приемника и источника в приемник. Происходит чередование в регистре назначения байт старшей половины источника с байтами старшей половины приемника.

Байты старшей половины приемника MM0 распаковываются в нечетные байты приемника MM1.

Байты старшей половины источника MM1 распаковываются в четные байты приемника MM0.

PUNPCKLBW

P UNPaCK Low packed Byfes to Words

Распаковывает младшие части приемника и источника в приемник. Происходит чередование в регистре назначения байт младшей половины источника с байтами младшей половины приемника. Пример:

PUNPCKHWD

P UNPaCK High packed Words to Double words

Распаковывает старшие части приемника и источника в приемник. Происходит чередование в регистре назначения слов старшей половины источника со словами старшей половины приемника.

PUNPCKLWD

P UNPaCK Low packed Words to Double words

Распаковывает младшие части приемника и источника в приемник. Происходит чередование в регистре назначения слов младшей половины источника со словами младшей половины приемника. Пример:

PUNPCKHDQ

P UNPaCK High packed Double words to Quad words.

Распаковывает старшие части приемника и источника в приемник. Происходит чередование в регистре назначения слов старшей половины источника со словами старшей половины приемника.

.

PUNPCKLDQ

P UNPaCK Low packed Double words to Quad words.

Распаковывает младшие части приемника и источника в приемник. Происходит чередование в регистре назначения двойных слов младшей половины источника с двойными словами младшей половины приемника. Пример:

      1. Арифметика

Cложение и вычитание

ММХ-команды сложения и вычитания работают с упакованными байтами и словами со знаком и без знака, а также с упакованными двойными словами со знаком. Они могут использовать как циклическую арифметику, так и арифметику с насыщением.

Входной операнд – регистр MMX или память.

Выходной операнд – регистр MMX.

Мнемоника

Описание

PADDB

Packed ADDition Bytes

Сложение упакованных байт. без насыщения (с циклическим переполнением)

PADDW

Packed ADDition Words

Сложение упакованных слов. без насыщения (с циклическим переполнением).

PADDD

Packed ADDition Double words

Сложение упакованных двойных слов без насыщения (с циклическим переполнением).

PADDSB

Packed ADDition with sighed Saturation Bytes

Сложение упакованных байт со знаковым насыщением.

PADDSW

Packed ADDition with sighed Saturation Words

Сложение упакованных слов со знаковым насыщением.

PADDUSB

Packed ADDition with Unsighed Saturation Bytes

Сложение упакованных байт с беззнаковым насыщением.

PADDUSW

Packed ADDition with Unsighed Saturation Words

Сложение упакованных слов с беззнаковым насыщением. Пример;

Серым цветом выделено слово результата, в котором произошло насыщение.

PSUBB

Packed SUBtraction Bytes

Вычитание упакованных байт без насыщения (с циклическим антипереполнением).

PSUBW

Packed SUBtraction Words

Вычитание упакованных слов без насыщения (с циклическим антипереполнением).

SUBD

Packed SUBtraction Double words

Вычитание упакованных двойных слов без насыщения (с циклическим антипереполнением).

PSUBSB

Packed SUBtraction with signed Saturanion Bytes

Вычитание упакованных знаковых байт с насыщением.

PSUBSW

Packed SUBtraction with signed Saturanion Words

Вычитание упакованных знаковых слов с насыщением.

PSUBUSB

Packed SUBtraction with Unsigned Saturanion Bytes

Вычитание упакованных беззнаковых байт с насыщением.

PSUBUSW

Packed SUBtraction with Unsigned Saturanion Bytes

Вычитание упакованных беззнаковых слов с насыщением.

Умножение

ММХ-команды умножения попарно перемножают 16-разрядные слова операндов, что дает четыре 32-разрядных произведения. Все команды формируют результат по принципу циклической арифметики:

Мнемоника

Описание

PMULHW

Packed Multiplay and return High Words

Попарное умножение 4 знаковых слов источника (регистр MMX или память) на 4 знаковых слова приемника (регистр MMX).

Результатом операции являются 4 32-разрядных произведения, при этом старшие разряды произведений сохраняются в 16-разрядных словах приемника, а младшие разряды произведений теряются. Пример:

PMULLW

Packed Multiplay and return Low Words

Попарное умножение 4 знаковых слов источника (регистр MMX или память) на 4 знаковых слова приемника (регистр MMX).

Результатом операции являются 4 32-разрядных произведения, при этом младшие разряды произведений сохраняются в 16-разрядных словах приемника, а старшие разряды произведений теряются.

PMADDWD

Packed Multiplay and ADD Word to Double word

Попарное умножение 4 знаковых слов источника (регистр MMX или память) на 4 знаковых слова приемника (регистр MMX). Два двойных слова результатов умножения младших слов суммируются и записываются в младшее двойное слово операнда назначения. Два двойных слова результатов умножения старших слов суммируются и записываются в старшее двойное слово операнда назначения. Пример:

      1. Логика

Логические ММХ-команды выполняют поразрядные логические операции над всеми 64 битами своих операндов. Они реализуют логические операции И, ИЛИ, И-НЕ, исключающего ИЛИ:

Мнемоника

Описание

PAND

Packed logical AND

Логическое "И".

PANDN

Packed logical AND and Not

Логическое "И-НЕ".

POR

Packed logical OR

Исключающее "ИЛИ".

PXOR

Packed logical eXclusive OR

Исключающее "ИЛИ".

      1. Сдвиги

ММХ-команды сдвига выполняют сдвиг каждого элемента данных (16-, 32- или 64-разрядного слова) в приемнике на величину, задаваемую источником. Среди команд сдвига выделяют команды арифметического и логического сдвига. При выполнении команд арифметического сдвига освобождающиеся разряды элементов заполняются знаком числа (старший бит) и могут принимать значение как 0, так и 1, в то время как при выполнении команд логического сдвига освободившиеся разряды заполняются нулями.

Мнемоника

Описание

PSLLW

Packed Shift Left Logical Words

Логический сдвиг влево упакованных слов приемника на количество бит, указанных в источнике, с заполнением младших бит нулями.

PSLLD

Packed Shift Left Logical Double words

Логический сдвиг влево упакованных двойных слов приемника на количество бит, указанных в источнике, с заполнением младших бит нулями.

PSLLQ

Packed Shift Left Logical Quarter words

Логический сдвиг влево упакованного учетвернного слова приемника на количество бит, указанных в источнике, с заполнением младших бит нулями.

PSRLW

Packed Shift Right Logical Words

Логический сдвиг вправо упакованных слов приемника на количество бит, указанных в источнике, с заполнением старших бит нулями.

PSRLD

Packed Shift Right Logical Double words

Логический сдвиг вправо упакованных двойных слов приемника на количество бит, указанных в источнике, с заполнением старших бит нулями.

PSRLQ

Packed Shift Right Logical Quarter words

Логический сдвиг вправо упакованного учетверенного слова приемника на количество бит, указанных в источнике, с заполнением старших бит нулями.

PSRAW

Packed Shift Right Arithmetic Words

Арифметический сдвиг вправо упакованных знаковых слов приемника на количество бит, указанных в источнике, с заполнением освобождаюшихся бит битами знаковых разрядов.

PSRAD

Packed Shift Right Arithmetic Double words

Арифметический сдвиг вправо упакованных двойных знаковых слов премника на количество бит, указанных в источнике, с заполнением освобождаюшихся бит битами знаковых разрядов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]