Ассемблер для 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 Мы пользуемся несколько устаревшим названием. Правильнее было бы это назвать числовым процессором.


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