December 17 2017 04:20:06
Навигация
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации .

Забыли пароль?
Запросите новый здесь.
Команда MOVMSKPS
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ

Команды MOVHLPS и MOVLHPS пересылают 64-разрядные данные из старшей половины (элементы F3-F2) SSE-регистра xmm2 в младшую половину (элементы F1-F0) SSE-регистра xmm1 или из младшей половины в старшую половину. При пересылке содержимое остальных половин в регистре приемнике не изменяется. Операнды могут храниться только в SSE-регистрах.

Команды MOVHPS и MOVLPS выполняют пересылку 64-разрядных данных между SSE-регистром xmm и ячейкой памяти с адресом m64. Эти команды не могут использоваться для переноса данных из памяти в память или из SSE-регистра в SSE-регистр. Когда приемником операнда является SSE-регистр, то данные из памяти загружаются в старшую (команда MOVHPS) или младшую (команда MOVLPS) его половину, а содержимое другой половины не изменяется. Если приемником операнда является ячейка памяти, то в нее записываются данные из старшей/младшей (команды MOVHPS/MOVLPS) половины SSE-регистра.

img020

Команда MOVMSKPS формирует 4-битовую маску из старших (знаковых) битов S каждого элемента F3-F0, хранящегося в SSE-регистре xmm. Затем эта маска расширяется нулем до 32 бит и записывается в регистр общего назначения r32 (рис. 2.35).

Команда MOVSS производит пересылку 32-разрядных данных между SSE-регистрами xmm или SSE-регистром и ячейкой памяти с адресом т32. В случае, когда источником и приемником операндов являются SSE-регистры, младшее двойное слово (элементы F1-F0) из регистра-источника копируется в младшее двойное слово регистра-приемника, а его старшие разряды (элементы F3-F2) не изменяются. Если приемником является ячейка памяти, то в нее записывается младшее двойное слово из SSE-регистра. Если же операнд из ячейки памяти m32 пересылается в SSE-регистр, то двойное слово из памяти расширяется нулем до 128 разрядов и загружается в регистр xmm.

Команда SHUFPS изменяет порядок размещения (производит перестановку) элементов F3-F0 в SSE-регистрах аналогично тому, как это реализует ММХ-команда PSHUFW. При этом элементы операнда из SSE-регистра или ячейки памяти xmm/m128 перемещаются в определенные позиции элементов результата, которые записываются в регистр-приемник xmm. Непосредственный операнд im8 определяет расположение элементов результата: биты b1-0 этого операнда задают номер i элемента Fi исходного операнда, который размещается в качестве элемента F0 результата, биты bЗ-2 - номер элемента, размещаемого на месте элемента F1, биты b5-4 - номер элемента, размещаемого на месте F2, биты b7-6 - номер элемента, размещаемого на месте F3. Выполнение данной операции иллюстрируется на рис. 2.36.

img021

Команды UNPCKHPS и UNPCKLPS производят распаковку данных аналогично тому, как это выполняют ММХ-команды PUNPCH, PUNPCKL. Данные команды объединяют в один операнд старшие половины (элементы F3-F2, команда UNPCKHPS) или младшие половины (элементы F1-F0, команда UNPCKLPS) операндов, хранящихся в SSE-регистре xmm и регистре или ячейке памяти xmm/m128. Результат записывается в регистр xmm, причем элементы исходных операндов чередуются, размещаясь в этом регистре. Выполнение этих операций показано на рис. 2.37

img022

Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.

Нет данных для оценки.

Время загрузки: 0.11 секунд 2,298,817 уникальных посетителей