Система команд x86 |
|
Программирование - Архитектура и система команд микропроцессоров x86 |
PSHUFW
Влияние команды на флаги и форматы команды:
|
|
|
|
|
|
0F 70 /r ib |
PSHUFW mm1, mm2/m64, imm8 |
Копировать в mm1 слова из mm2/m64 согласно индексов в imm8 |
Pentium III |
pshufw mm2,mm4,2Fh |
Описание:
Команда PSHUFW копирует слова, упакованные в операнде-источнике команды (MMX-регистр или операнд в памяти) в определенные позиции в операнде-назначении (MMX-регистр). Для каждой позиции в операнде-назначении третий операнд команды (imm8) задает номер копируемого в нее слова из операнда-источника. Биты 0,1 параметра imm8 задают номер копируемого слова для младшего 16-битного поля операнда-назначения, биты 2, 3 — для следующего, 4,5 — для третьего и 6, 7 — для самого старшего. Эти биты кодируются обычными двоичными кодами, например код 11b означает, что в соответствующую позицию будет скопировано самое старшее слово из операнда-источника.
Операция:
DEST[15-0] = (SRC/m64 >> (imm8[1-0] * 16) )[15-0];
DEST[31-16] = (SRC/m64 >> (imm8[3-2] * 16) )[15-0];
DEST[47-32] = (SRC/m64 >> (imm8[5-4] * 16) )[15-0];
DEST[63-48] = (SRC/m64 >> (imm8[7-6] * 16) )[15-0];
Особые ситуации защищенного режима:
#GP(0) при некорретном эффективном адресе операнда в памяти в сегментах CS, DS, ES, FS или GS.
#SS(0) при использовании некорректного эффективного адреса в сегменте SS.
#PF(Код ошибки) при страничной ошибке.
#NM, если CR0.TS = 1.
#AC при невыровненных обращениях к памяти (когда CR0.AM = 1, EFLAGS.AC = 1 и CPL = 3).
#UD, если CR0.EM = 1.
#MF, если есть отложенные необработанные незамаскированные исключения FPU.
Особые ситуации режима реальной адресации:
#GP, если любая часть операнда находится вне пространства эффективных адресов от 0 до 0FFFFh.
#NM, если CR0.TS = 1.
#UD, если CR0.EM = 1.
#MF, если есть отложенные необработанные незамаскированные исключения FPU.
Особые ситуации режима V86:
Такие же, как и в режиме реальной адресации.
#PF(Код ошибки) при страничной ошибке.
#AC при невыровненных обращениях к памяти (когда CR0.AM = 1 и EFLAGS.AC = 1).
Все права защищены © Алексей Ровдо, 1994-2023. Перепечатка возможна только по согласованию с владельцем авторских прав. admin@club155.ru