Передача данных. Классификация команд

Инициализация

Классификация команд

Синтаксис ММХ-команд

Большинство команд в мнемонике имеют суффикс, который определяет тип данных и используемую арифметику:

· US (Unsigned Saturation) — арифметика с насыщением, данные без знака или, по-другому, беззнаковое насыщение. Если команда использует арифметику с насыщением и результат операции превышает максимальное представимое значение, то в выходной операнд записывается это максимальное значение (происходит «насыщение»). Аналогично, если результат операции оказался меньше нижней границы допустимого диапазона, то в выходной операнд записывается минимально возможное значение.

· S или SS (Signed Saturation) — арифметика с насыщением для данных со знаком (или знаковое насыщение).

· Если в суффиксе нет ни символа S ни символов SS, то применяется циклическая арифметика (wraparound). Если в этом случае результат операции выходит за двоичную разрядную сетку используемого типа данных, то «лишние» старшие биты результата отбрасываются.

· b, w, d, q — эти буквы в конце имени указывают тип данных. Если в суффиксе есть две из этих букв, то первая соответствует входному операнду, вторая — выходному.

Синтаксис MMX команд:

· Мнемоника приемник, источник

· Мнемоника приемник, источник, маска

· Мнемоника приемник

После обзора команды будут рассмотрены подробно.

Категория Подкатегория Команды
Инициализация   EMMS
Передача данных Пересылки MOVD, MOVQ
Упаковка данных   PACKSSWB, PACKSSDW – числа со знаком PACKUSWB – числа без знака
Распаковка данных   PUNPCKHBW, PUNPCKHWD, PUNPCKHDQ – старшая половина PUNPCKLBW, PUNPCKLWD, PUNPCKLDQ – младшая половина
Арифметика Сложение Вычитание Умножение PADD, PADDS, PADDUS PSUB, PSUBS, PSUBUS PMULHW, PMULLW, PMADDWD
Логика   PAND, PANDN, POR, PXOR
Сдвиги   PSLLW, PSLLD, PSLLQ – логические влево PSRLW, PSRLD, PSRLQ – логические вправо PSRAW, PSRAD – арифметические (вправо)
Сравнения   PCMPEQB, PCMPEQW, PCMPEQD – на равенство PCMPGTB, PCMPGTW, PCMPGTD – на значение
Дополнительные Вычисления PAVGB, PAVDW - среднее значеие PSADBW – сумма разностей
Извлечения PEXTRW – извлечь слово PINSRW – вставить слово PMAXUB, PMAXSW – извлечь максимальное PMINUB, PMINSW – извлечь минимальное
Маска из знаков байтов PMOVMSKB
Команда Описание
EMMS Empty MMx State Очистка стека регистров MMX. Установка всех единиц в слове тегов.

Данные передаются между:

· регистрами MMX,

· регистром MMX и регистром основного процессора,

· регистром MMX и памятью.

Если размер приемника меньше размера источника, то лишние разряды обнуляются.

Команда Описание
MOVD приемник, источник MOVe Double word – переместить двойное слово (32 разряда).
MOVQ приемник, источник MOVe Quarter word – переместить учетверенное слово (64 разряда).

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: