October 16 2017 22:59:37
Навигация
Авторизация
Логин

Пароль



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

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

Команды этой группы приведены в табл. 2.41. Команды MOVD, MOVQ, PEXTRW, PINSRW и PMOVMSKB осуществляют пересылку данных, а команды PACKSS[WB,DW], PACKUSWB, PUNPCKH[BW,WD,DQ], PUNPCKL[BW,WD,DQ] и PSHUFW-преобразование данных: упаковку, распаковку и переупорядочивание элементов. Используемые операнды задаются в синтаксисе Ассемблера номером ММХ-регистра mm, именем регистра общего назначения r32 или адресом ячейки памяти m16, m32 или m64, хранящей, соответственно 16-, 32- или 64-разрядные данные. При определении выполняемой операции в табл. 2.41 указывается формат пересылаемых упакованных данных (В, W, D или Q), а в случае необходимости также и номер соответствующего элемента: например, mm(W) - слово из ММХ-регистра с номером mm, mm(B0) - элемент (байт) В0 из ММХ-регистра с номером mm.

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

Синтаксис команды Операция
MOVQ mm,mm/m64
MOVQ mm/m64,mm
mm/m64(Q) ® mm(Q)
mm(Q)     ® mm/m64(Q)
MOVD mm,r/m32

MOVD r/m32,mm

r/m32 ® mm(D0) 0      ® mm(D1)
mm(D0) -> r/m32

PEXTRW r32,mm,imm8 mm[W(im8[1..0])] ® r32(15..0)
0                ® r32(31..16)
PINSRW mm,r32/m16,imm8 r32(15..0)/m16 -> mm[W(im8[1..0])]
PMOVMSKB r32,mm mm[b7(Bi)] ® r32(i), i = 0..7
0           ® r32(31..8)
PACKSSWB mm,mm/m64










PACKSSDW mm,mm/m64
Преобразование с насыщением из слов со знаком в байты со знаком
mm(W0) ® mm(B0)
mm(W1) ® mm(B1)
mm(W2) ® mm(B2)
mm(W3) ® mm(B3)
mm/m64(W0) ® mm(B4)
mm/m64(W1) ® mm(B5)
mm/m64(W2) ® mm(B6)
mm/m64(W3) ® mm(B7)
Преобразование с насыщением из двойных слов со знаком в слова со знаком
Mmm(D0) ® mm(W0)
mm(D1) ® mm(W1)
mm/m64(D0) ® mm(W2)
mm/m64(D1) ® mm(W3)
PACKUSWB mm,mm/m64 Преобразование с насыщением из слов со знаком в байты без знака
mm(W0)     ® mm(B0)
mm(W1)     ® mm(B1)
mm(W2)     ® mm(B2)
mm(W3)     ® mm(B3)
mm/m64(W0) ® mm(B4)
mm/m64(W1) ® mm(B5)
mm/m64(W2) ® mm(B6)
mm/m64(W3) ® mm(B7)
PUNPCKHBW mm,mm/m64 mm(B4)         ® mm(B0)
mm/m64(B4) ® mm(B1)
mm(B5)         ® mm(B2)
mm/m64(B5) ® mm(B3)
mm(B6)         ® mm(B4)
mm/m64(B6) ® mm(B5)
mm(B7)         ® mm(B6)
mm/m64(B7) ® mm(B7)
PUNPCKHWD mm,mm/m64



PUNPCKHDQ mm,mm/m64
mm(W2)         ® mm(W0)
mm/m64(W2) ® mm(W1)
mm(W3)         ®mm(W2)
mm/m64(W3) ® mm(W3)
mm(D1)          ® mm(D0)
mm/m64(D1)  ® mm(D0)
PUNPCKLBW mm,mm/m64 mm/m64(B3) ® mm(B7)
mm(B3)         ®mm(B6)
mm/m64(B2) ® mm(B5)
mm(B2)         ® mm(B4)
mm/m64(B1) ®mm(B3)
mm(B1)         ®mm(B2)
mm/m64(B0) ® mm(B1)
mm(B0)         ® mm(B0)
PUNPCKLWD mm,mm/m64



PUNPCKLDQ mm,mm/m64
mm/m64(W1) ® mm(W3)
mm(W1)         ® mm(W2)
mm/m64(W0) ® mm(W1)
mm(W0)         ® mm(W0)
mm/m64(D0) ® mm(D1)
mm(D0)         ® mm(D0)
PSHUFW mm,mm/m64,imm8 mm/m64[W(im8[1..0])] ® mm(W0) mm/m64[W(im8[3..2])] ® mm(W1) mm/m64[W(im8[5..4])] ® mm(W2) mm/m64[W(im8[7..6])] ® mm(W3)

Команда MOVQ производит пересылку 64-разрядного операнда - счетверенного слова mm(Q)-между двумя ММХ-регистрами или между ММХ-регистром и памятью. Эта команда не выполняет перенос данных между ММХ-регистром и регистром общего назначения. Команда MOVD производит пересылку 32-разрядного операнда - двойного слова mm(D0) -между ММХ-регистром (младший элемент) и памятью или регистром общего назначения. Если операндом-приемником является ММХ-регистр, то в его старшую половину загружается нулевое значение. Данная команда не может использоваться для передачи данных между двумя ММХ-регистрами.

Команды PEXTRWn PINSRW производят пересылки 16-разрядных элементов - слов mm(Wi) - между ММХ-регистром и регистром общего назначения или памятью. Команда PEXTRW пересылает любой элемент (слово) из ММХ-регистра в младшие разряды b15-0 регистра общего назначения r32. В старшие разряды b31—16 этого регистра загружается нулевое значение. Команда PINSRW выполняет обратную операцию, пересылая слово из младших разрядов b15-0 регистра общего назначения или 16-разрядной ячейки памяти с адресом m16 на место заданного элемента mm(Wi) в ММХ-регистр. Остальные три элемента (слова) в ММХ-регистре остаются без изменения. Номер i пересылаемого или замещаемого элемента в ММХ-регистре задается двумя младшими битами непосредственного операнда im8.

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

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

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

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