Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2 курс / Лекции / Лекция 26 - Расширения системы команд IA-32 – MMX и SSE..ppt
Скачиваний:
43
Добавлен:
18.02.2023
Размер:
458.24 Кб
Скачать

Команды распаковки

Пример PUNPCKHBW

Пример PUNPCKHBW

Дополнительные MMX-

команды, – вычисляют среднее значение

PAVGB PAVGW

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

двух чисел, операндов

PEXTRW – извлекает одно из четырех упакованных слов входного операнда. Команда имеет три аргумента: выходной операнд – РОН 32bit, входной операнд – MMX-регистр, маска – непосредственное значение (0-3). Извлеченное значение сохраняется в младших 16 разрядах выходного операнда, а старшие разряды обнуляются.

PINSRW – вставляет слово в одно из четырех упакованных слов выходного операнда. Команда имеет три аргумента: выходной операнд – MMX-регистр, входной операнд – РОН, маска – непосредственное значение (0-3). Вставляются младшие 16 бит РОН.

Дополнительные MMX- команды

PMAXUB, PMAXSW – извлекают максимальное значение из каждой пары упакованных элементов в выходном и входном операндах.

PMINUB, PMINSW – извлекают минимальное значение из каждой пары упакованных элементов в выходном и входном операндах.

PMOVMSKB – формирует байт, содержащий знаковые биты восьми байтов, содержащихся во входном операнде, результат записывается в выходной операнд – РОН, младшие 8 бит.

PSADBW – вычисляет суммарную разность значений без знаковых байтов входного и выходного операндов.

Технология SSE

Технология SSE – дальнейшее развитие технологии MMX. Ключевые отличия:

добавление восьми 128-разрядных регистров;

вещественная арифметика (вещественные числа одинарной точности – Single-Precision-Floating-Point);

команды управления КЭШ-памятью.

Программное окружение SSE

Команды SSE-расширения позволяют использовать следующие элементы:

32-разрядные регистры общего назначения;восемь 64-разряных MMX-регистров (MM0-MM7);

восемь 128-разрядных XMM-регистров (XMM0-XMM7);регистр управления/состояния XMM.

регистр флагов EFLAGS.

Регистр

состояния/управления

Система команд SSE

В дополнении к параллельным командам MMX появились скалярные команды, которые выполняют операцию только над младшим упакованным значением в регистре.

Параллельные команды имеют суффикс PS. Схема их выполнения:

Система команд SSE

Скалярные команды имеют суффикс ss. Схема их выполнения:

Система команд SSE

Команды передачи данных

Арифметические команды

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

Команды преобразования

Логические команды

Дополнительные команды

Команды передачи данных SSE

MOVAPS – пересылка выровненных по 16-байтовой границе 128- разрядных данных. Входной операнд – XMM-регистр или память, выходной операнд – XMM-регистр или память.

MOVUPS – пересылка не выровненных по 16-байтовой границе 128- разрядных данных. Входной операнд – XMM-регистр или память, выходной операнд – XMM-регистр или память.

MOVHPS – пересылка не выровненных 64 бит. Входной операнд – XMM-регистр или память, выходной операнд – XMM-регистр или память. Пересылает старшие разряды XMM-регистра.

MOVLPS – пересылка не выровненных 64 бит. Входной операнд – XMM-регистр или память, выходной операнд – XMM-регистр или память. Пересылает младшие разряды XMM-регистра.