Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мпс с 1 по 294.doc
Скачиваний:
13
Добавлен:
16.04.2019
Размер:
6.2 Mб
Скачать

2.6. Система команд: операции sse

В процессорах Pentium III технология ММХ получила дальнейшее развитие. В структуру этих процессоров введен исполнительный блок SSE (см. рис. 2.1), который обрабатывает по принципу SIMD (Single Instruction - Multiple Data: Одна Команда - Много Данных) данные, представленные в формате с плавающей точкой. Блок SSE содержит набор специализированных регистров и обеспечивает выполнение набора дополнительных команд. Это расши­рение архитектуры процессоров семейства Р6 получило название Streaming SIMD Extension - SSE (потоковое SIMD-расширение). Блок SSE входит в структуру ряда типов процессоров семейства Р6. Чтобы определить, поддерживает ли данный процессор SSE-расширение, следует воспользоваться командой CPUID.

Ниже дается перечень SSE-команд, разбитых по функциональным группам

Команды пересылки данных

MOVAPS-Пересылка выровненных 128-разрядных данных 'Пересылка 64-разрядных данных из старшей половины одного SSE-регистра в младшую половину другого SSE-регистра MOVHPS - Пересылка в память 64-разрядных данных из старшей половины SSE-регистра MOVLHPS - Пересылка 64-разрядных данных из младшей половины одного SSE-регис­тра в старшую половину другого SSE-регистра MOVLPS - Пересылка в память 64-разрядных данных из младшей половины SSE-perucrpa MOVMSKPS - Пересылка знаковых битов пакета с одинарной точностью в регистр об­щего назначения MOVSS - Пересылка 32-разрядных данных MOVUPS - Пересылка 128-разрядных данных.

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

SHUFPS - Изменение порядка размещения элементов в пакете одинарной точности UNPCKHPS - Распаковка из старших половин пакетов UNPCKLPS - Распаковка из младших половин пакетов

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

ADDPS - Сложение пакетов одинарной точности

ADDSS - Сложение двух чисел одинарной точности

DIVPS -Деление пакетов одинарной точности

DIVSS-Деление двух чисел одинарной точности

MULPS-Умножение пакетов одинарной точности MULSS -Умножение двух чисел одинарной точности

RCPPS - Вычисление обратной величины элементов в пакете одинарной точности RCPSS - Вычисление обратной величины числа одинарной точности RSQRTPS - Вычисление обратной величины квадратного корня из элементов пакета одинарной точности RSQRTSS - Вычисление обратной величины квадратного корня из числа одинарной точности SQRTPS - Вычисление квадратного корня из элементов пакета одинарной точности SQRTSS - Вычисление квадратного корня из числа одинарной точности SUBPS -Вычитание пакетов одинарной точности SUBSS - Вычитание двух чисел одинарной точности.

Команды нахождения максимума и минимума.

MAXPS - Нахождение максимума пакетов одинарной точности.

MAXSS - Нахождение максимума двух чисел одинарной точности.

MINPS - Нахождение минимума пакетов одинарной точности.

MINSS - Нахождение минимума двух чисел одинарной точности.

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

CMPPS -Сравнение пакетов одинарной точности.

CMPSS - Сравнение двух чисел одинарной точности.

COMISS - Сравнение двух чисел одинарной точности с установкой признаков в регист­ре EFLAGS.

UCOMISS -Сравнение двух чисел одинарной точности с установкой признаков в реги­стре EFLAGS.

Команды логических операций.

,., ANDNPS -Логическое НЕ-И над 128-разрядными операндами ANDPS - Логическое И над 128-разрядными операндами ORPS -Логическое ИЛИ над 128-разрядными операндами XORPS-ИСКЛЮЧАЮЩЕЕ ИЛИ над 128-разрядными операндами