October 18 2017 12:23:42
Навигация
Авторизация
Логин

Пароль



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

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

Если в регистре управления CR0 установлено значение бита ЕМ = 1, то попытка выполнить SSE-команду приведет к исключению #UD. Если в регистре управления CR4 значение бита OSFXSR = 0 (это означает, что операционная система не поддерживает сохранение и восстановление содержимого SSE-регистров при переключении задач), то попытка выполнить SSE-команду приведет к исключению #UD. Если в регистре CR0 значение бита TS = 1, то попытка выполнить SSE-команду приведет к исключению #NM.

Формат SSE-команд аналогичен формату ММХ-команд. SSE-команды поддерживают все возможные способы адресации с использованием байтов MODR/M и SIB. Префиксы влияют на выполнение этих команд таким же образом, как на выполнение ММХ-команд (см. табл. 2.39). Для команд, которые имеют две формы (пакетную и скалярную), присутствие префикса REP указывает на скалярную форму команды. Если префикс REP отсутствует, то команда выполняет пакетную обработку данных.

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
FZ RC PM UM OM ZM DM IM Резер. РЕ UE OE ZE |DE IE
Резервировано
31












0

Рис. 2.34. Формат содержимого регистра управления-состояния MXCSR

2.6.2. КОМАНДЫ ПЕРЕСЫЛКИ И ПРЕОБРАЗОВАНИЯ ДАННЫХ

Команды этой группы приведены в табл. 2.46.

Команды MOVAPS и MOVUPS производят пересылку 128-разрядных данных между SSE-регистрами xmm или SSE-регистром и ячейкой памяти с адресом m128. Эти команды не могут переносить данные из памяти в память. Команда MOVAPS осуществляет пересылку выравненных данных: если один из операндов находится в памяти, то его адрес должен быть выравнен по 16-байтной границе, иначе реализуется исключение типа #GP («нарушение защиты»). Для пересылки невыравненных данных следует использовать команду MOVUPS, которая не вызывает исключения в этом случае.

Таблица 2.46 Команды пересылки и преобразования данных

Синтаксис команды Операция
MOVAPS xmm,xmm/m128
MOVAPS xmm/m128,xmm
xmm/m128 ® xmm
xmm      ® xmm/m128 (выравненные данные)
MOVUPS xmm,xmm/m128
MOVUPS xmm/m128,xmm
xmm/m128 ® xmm
xmm      ® xmm/m128 (невыравненные данные)
MOVHLPSxmm1,xrnm2 xmm2(F2,F3) ® xmm1(F0,F1)
MOVHPS xmm,m64
MOVHPS m64,xmm
m64        ® xmm(F2,F3)
xmm(F2,F3) ® m64
MOVLHPS xmm1,xmm2 xmm2(F0,F1) ® xmm1(F2,F3)
MOVLPS xmm,m64
MOVLPS m64,xmm
m64        ® xmm(F0,F1)
xmm(F0,F1) ® m64
MOVMSKPS r32,xmm xmm[b7(F0)] ® r32(b0)
xmm[b7(F1)] ® r32(b1)
xmm[b7(F2)] ® r32(b2)
xmm[b7(F3)] ® r32(b3)
0                   ® r32(b31..b4)
MOVSS xmm,m32

MOVSSxmm1,xmm2
MOVSS m32,xmm
m32 ® xmm(F0)
0       ® xmm(F1-F3)
xmm2(F0) ® xmm1(F0)
xmm(F0) ® m32

UNPCKHPS xmm,xmm/m128
xmm(F2)           ® xmm(F0)
xmm/m128(F2) ® xmm(F1)
xmm(F3)           ® xmm(F2)
xmm/m128(F3) ® xmm(F3)

UNPCKLPS xmm,xmm/m128
xmm(F0)           ® xmm(F0)
xmm/m128(F0) ® xmm(F1)
xmm(F1)           ® xmm(F2)
xmm/m128(F1) ® xmm(F3)

SHUFPS xmm,xmm/m128,imm8
xmm/m128[F(im8[1..0])] ® xmm(F0)
xmm/m128[F(im8[3..2])] ® xmm(F1)
xmm/m128[F(im8[5..4])] ® xmm(F2)
xmm/m128[F(im8[7..6])] ® xmm(F3)
Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

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

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

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