Форматы данных и команды их обработки процессоров Pentium III, Pentium IVРефераты >> Программирование и компьютеры >> Форматы данных и команды их обработки процессоров Pentium III, Pentium IV
PMULUDQ приемник, источник
PMULUDQ, (MULtiply Packed Unsigned Doubleword integers description) — умножение 32-битных целых значений без учета знака и сохранение результата в ХММ-регистре.
Синтаксис и машинный код:
0F F4 /r PMULUDQ rmmx1, rmmx2/m64
66 0F F4 /r PMULUDQ rxmm1, rxmm2/m128
Действие: умножить 32-битные целые значения со знаком в источнике и приемнике. Исходя из типа источника, возможны две схемы умножения:
• источник — ММХ-регистр или ячейка памяти m64: приемник[63-0] ßприемник[?А-0] источник[31-0];
• источник — ХММ-регистр или ячейка памяти: приемник[63-0}ßприемник[31-0] источник[31-0]; приемник[127-64]ßприемник[95-64]источник[95-64].
Когда результат умножения слишком большой, чтобы быть представленным в приемник, то он "заворачивается" (перенос игнорируется).
Флаги: не изменяются.
Исключения: РМ: #GP(0): 2,42; #SS(0): 1; #UD: 10,12,15; #NM: 3; #PF(fault-code); RM: #GP: 13, 16; #UD: 17, 19, 22; #NM: 3; VM: исключения реального режима; #PF(fault-code).
POR приемник, источник
POR (bitwise logical OR) — упакованное логическое ИЛИ.
Синтаксис: POR rxmm1, rxmm2/m128
Машинный код: 66 0F ЕВ /r
Действие: команда производит побитовую операцию логическое ИЛИ над всеми битами операндов источника и приемника. Результат помешается в операнд приемник.
Флаги: не изменяются.
Исключения: РМ: #GP(0): 2, 42; #SS(0): 1; #UD: 10, 12, 15; #NM: 3; #PF(fault-code); RM: #GP: 13,16; #UD: 17,19, 22; #NM: 3; VM: исключения реального режима; #PF(fault-code).
PSADBW приемник, источник
PSADBW (Compute Sum 0F Absolute Differences) — суммарная разница значений нар беззнаковых упакованных байт.
Синтаксис: PSADBW rxmm1, rxmm2/m128
Машинный код: 66 0F F6 /r
Действие: для каждой пары байт двух упакованных учетверенных слов операндов источник и приемник вычислить модуль разности, после чего сложить полученные модули. Результат записать в младшее слово каждого из двух упакованных учетверенных слов приемника, старшие три слова в упакованных учетверенных словах приемника обнулить. Принцип работы программы поясняет схема ниже.
Флаги: не изменяются.
Исключения: РМ: #GP(0): 2, 42; #SS(0): 1; #UD: 10, 12, 15; #NM: 3; #PF(fault-code); RM: #GP: 13,16; #UD: 17,19,22; #NM: 3; VM: исключения реального режима; #PF(fault-code).
PSHUFD приемник, источник, маска
PSHUFD (SHUFfle Packed Doublewords) — копирование двойных слов из ХММ-операнда источник в ХММ-операнд приемник.
Синтаксис: PSHUFD xmm1, xmm2/m128, imm8
Машинный код: 66 0F 70 /r i8
Действие: на основе значения пар бит маски копировать двойные слова из источника в приемник. Каждая пара бит маски определяет номер слова источника для перемещения.в приемник следующим образом:
• маска[1:0]:
• 00 приемник[0 .31] ß источник[0 .31],
• 01 приемник[0 .31] ß источник[32 .63],
• 10 npueMHUK[0 .31] ß источник[64 .95];
• 11 приемник[0 .31] ß источник[96 127];
• маска[3:2]:
• 00 приемник[32 .63] ß источник[0 .31];
• 01 приемник[32 .63] ß источник[32 .63];
• 10 приемник[32 .63] ß источник[64 .95];
• 11 приемник[32 .63] ß источник[96 127];
• маска[5:4]:
• 00 приемник[64 .95] ß источник[0 .31];
• 01 приемник[64 .95] ß источник[32 .63],
• 10 приемиик[64 .95] ß источник[64 .95];
• 11 приемник[64 .95] ß источник[96 127];
• маска[7:6]:
• 00 приемник[96 127] ß источник[0 .31];
• 01 приемник[96 127] ß источник[32 .63];
• 10 приемник[96 127] ß источник[64 .95];
• 11 приемник[96 127] ß источник[96 .127].
Если использовать один и тот же ХММ-регистр в качестве источника и приемника, то можно выполнять любые перестановки двойных слов в пределах одного ХММ-регистра, в том числе и инициализацию значением одного двойного слова других двойных слов. Работу команды PSHUFD поясняет следующая схема:
Флаги: не изменяются.
Исключения: РМ: #GP(0): 2, 42; #SS(0): 1; #UD: 10, 12, 15; #NM: 3; #PF(fault-code); RM: #GP: 13,16; #NM: 3; #UD: 17,19, 22; VM: исключения реального режима; #PF(fault-code).
PSHUFHW приемник, источник, маска
PSHUFHW (SHUFfle Packed High Words) — копирование слов из старшего учетверенного упакованного слова ХММ-операнда источник в старшее учетверенное упакованное слово ХММ-операнда приемник.
Синтаксис: PSHUFHW xmm1, xmm2/m128, imm8
Машинный код: F3 0F 70 /r i8
Действие: на основе значения пар бит маски копировать слова из старшего упакованного учетверенного слова источника в старшее учетверенное упакованное слово приемника. Каждая пара бит маски определяет номер слова источника для перемещения в приемник следующим образом:
• маска[1:0]:
• 00 приемник[64 .79] ß источник[64 .79];
• 01 приемник[64 .79] ß источник[80 .95];
• 10 приемник[64 .79] ß источник[96 111];
• 11 приемник[64 .79] ß источник[112 .127];
• маска[3:2]:
• 00 приемник[80 .95] ß источник[64 .79];
• 01 приемник[80 .95] ß источник[80 .95];
• 10 приемник[80 .95] ß источник[96 111];
• 11 приемник[80 .95] ß источник[112 127];
• маска[5:4]:
• 00 приемник [96 .111] ß источгшк[64 .79];
• 01 приемник [96 .111] ß источник[80 .95];
• 10 приемник [96 .111] ß источпик[96 .111];
• 11 приемник [96 .111] ß источник[112 127];
• маска[7:6]:
• 00 приемник[112 .127] ß источник[64 .79];
• 01 приемник[112 .127] ß источник[80 .95];
• 10 приемник[112 .127] ß источник[96 111];
• 11 приемник[112 .127} ß источник[112 127].
Если использовать один и тот же ХММ-регистр в качестве источника и приемника, то можно выполнять любые перестановки слов в пределах старшего учетверенного слова одного ХММ-регистра, в том числе и инициализацию значением одного слова других слов. Работу команды PSHUFHW поясняет следующая схема.
Флаги: не изменяются.
Исключения: РМ: #GP(0): 2, 42; #SS(0): 1; #UD: 10, 12, 15; #NM: 3; #PF(fault-codc); RM: #GP: 13,16; #UD: 17,19,22; #NM: 3; VM: исключения реального режима; #PF(fanlt-code).
PSHUFLW приемник, источник, маска
PSHUFLW (SHUFfle Packed Low Words) — копирование слов из младшего учетверенного упакованного слова ХММ-онераида источник в младшее учетверенное упакованное слово ХММ-онеранда приемник.
Синтаксис: PSHUFLW rxmm1, rxmm2/m128, imm8
Машинный код: F2 0F 70 /r i8
Действие: на основе значения пар бит маски копировать слова из младшего учетверенного слова источника в младшее учетверенное слово приемника. Каждая пара бит маски определяет номер слова источника для перемещения в приемник следующим образом: