Ассемблер для Windows

Команды MMX расширения



Команды MMX расширения

(по книге [3])

EMMS

Очистка стека регистров. Установка всех единиц в слове тегов.

MOVD mm,m32/ir32

Пересылка данных в младшие 32 бита регистра MMX с заполнением старших бит нулями.

MOVD m32/ir32,mm

Пересылка данных из младших 32 бит регистра MMX.

MOVQ mm,mm/m64



Пересылка данных в регистр MMX.

MOVQ mm/m64,mm

Пересылка данных из регистра MMX.

PACKSSDW mm,mm/m64

Упаковка со знаковым насыщением двух двойных слов, расположенных в mm, и двух двойных слов mm/m64 в четыре слова, расположенных в mm.

PACKSSWB mm,mm/m64

Упаковка со знаковым насыщением четырех слов, расположенных в mm, и четырех слов mm/m64 в восемь байт, расположенных в mm.

PACKUSWB mm,mm/m64

Упаковка с насыщением четырех знаковых слов, расположенных в mm, и четырех слов mm/m64 в восемь беззнаковых байт, расположенных в mm.

PADDB mm,mm/m64
PADDW mm,mm/m64
PADDD mm,mm/m64

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

PADDSB mm,mm/m64
PADDSW mm,mm/m64

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

PADDUSB mm,mm/m64
PADDUSW mm,mm/m64

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

PAND mm,mm/m64

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

PANDN mm,mm/m64

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

PCMPEQB mm,mm/m64
PCMPEQD mm,mm/m64
PCMPEQW mm,mm/m64

Сравнение (на равенство) упакованных байт (слов, двойных слов). Все биты элемента результата будут единичными (true) при совпадении соответствующих элементов операндов и нулевыми (false) - при несовпадении.

PCMPGTB mm,mm/m64
PCMPGTD mm,mm/m64
PCMPGTW mm,mm/m64

Сравнение (по величине) упакованных знаковых байт (слов, двойных слов). Все биты элемента результата будут единичными (true), если соответствующий элемент операнда назначения больше элемента операнда источника, и нулевыми (false) в противном случае.

PMADDWD mm,mm/m64

Умножение четырех знаковых слов операнда источника на четыре знаковых слова операнда назначения. Два двойных слова результатов умножения младших слов суммируются и записываются в младшее двойное слово операнда назначения. Два двойных слова результатов умножения старших слов суммируются и записываются в старшее двойное слово операнда назначения.



PMULHW mm,mm/m64 Умножение упакованных знаковых слов с сохранением только старших 16 бит элементов результата.

PMULLW mm,mm/m64 Умножение упакованных знаковых или беззнаковых слов с сохранением только младших 16 бит результата.

POR mm,mm/m64 Логическое "ИЛИ".

PSHIMD mm,imm
PSHIMQ mm,imm
PSHIMW mm,imm PSHIMD представляет инструкции PSLLD, PSRAD и PSRLD с непосредственным операндом-счетчиком.
PSHIMW представляет инструкции PSLLW, PSRAW, PSRLW.

PSHIMQ представляет инструкции PSLLQ и PSRLQ с непосредственным операндом-счетчиком.

PSLLD mm,mm/m64
PSLLQ mm,mm/m64
PSLLW mm,mm/m64 Логический сдвиг влево упакованных слов (двойных, учетверенных) операнда назначения на количество бит, указанных в операнде-источнике, с заполнением младших бит нулями.

PSRAD mm,mm/m64
PSRAW mm,mm/m64 Арифметический сдвиг вправо упакованных двойных (учетверенных) знаковых слов операнда назначения на количество бит, указанных в операнде-источнике, с заполнением младших бит битами знаковых разрядов.

PSRLD mm,mm/m64
PSRLQ mm,mm/m64
PSRLW mm,mm/m64 Логический сдвиг вправо упакованных слов (двойных, учетверенных) операнда назначения на количество бит, указанных в операнде-источнике, с заполнением старших бит нулями.

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

PSUBSB mm,mm/m64
PSUBSW mm,mm/m64 Вычитание упакованных знаковых байт (слов) с насыщением.

PSUBUSB mm,mm/m64
PSUBUSW mm,mm/m64 Вычитание упакованных беззнаковых байт (слов) с насыщением.

PUNPCKHBW mm,mm/m64 Чередование в регистре назначения байт старшей половины операнда-источника с байтами старшей половины операнда назначения.

PUNPCKHWD mm,mm/m64 Чередование в регистре назначения слов старшей половины операнда-источника со словами старшей половины операнда назначения.

PUNPCKHDQ mm,mm/m64 Чередование в регистре назначения двойного слова старшей половины операнда-источника с двойным словом старшей половины операнда назначения. PUNPCKLBW mm,mm/m64 Чередование в регистре назначения байт младшей половины операнда-источника с байтами младшей половины операнда назначения.

PUNPCKLWD mm,mm/m64 Чередование в регистре назначения слов младшей половины операнда-источника со словами младшей половины операнда назначения.

PUNPCKLDQ mm,mm/m64 Чередование в регистре назначения двойного слова младшей половины операнда-источника с двойным словом младшей половины операнда назначения.

PXOR mm,mm/m64 Исключающее "ИЛИ".

60 Мы пользуемся несколько устаревшим названием. Правильнее было бы это назвать числовым процессором.


Содержание раздела