Форматы данных и команды их обработки процессоров Pentium III, Pentium IV
Информация - Компьютеры, программирование
Другие материалы по предмету Компьютеры, программирование
P: 13,16; #NM: 3; #UD: 17,19,22; VM: исключения реального режима; #PF(fault-code).
PSUBUSB/PSUBUSW приемник, источник
PSUBUSB (Packed Subtraction with Unsigned Saturation Bytes) вычитание упакованных байт с беззнаковым насыщением. PSUBUSW (Packed Subtraction with Unsigned Saturation words) вычитание упакованных слов с беззнаковым насыщением.
Синтаксис и машинный код:
66 0F D8 /r PSUBUSB xmm1, xmm2/m128
66 0F D9 /r PSUBUSW xmm1, xmm2/m128
Действие: вычесть без учета знака элементы операндов источника и приемника размером байт/слово в зависимости от кода операции. При возникновении переполнения результат формируется в соответствии с принципом беззнакового насыщения:
PSUBUSB 00h для результатов вычитания меньших нуля;
PSUBUSW 0000h для результатов вычитания меньших нуля.
Результат помещается в операнд приемник.
Флаги: не изменяются.
Исключения: РМ: #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).
PUNPCKHBW/PUNPCKHWD/PUNPCKHDQ/ PUNPCKHQDQ приемник, источник
PUNPCKHBW/PUNPCKHWD/PUNPCKHDQ/PUNPCKHQDQ (UNPaCK High Data) распаковка старших упакованных байт (слов, двойных слов, учетверенных слов) в слова (двойные слова, учетверенные слова, двойное учетверенное слово).
Синтаксис и машинный код:
66 0F 68 /r PUNPCKHBW rxmm1, rxmm2/m128
66 0F 69 /r PUNPCKHWD rxmm1, rxmm2/m128
66 0F 6A /r PUNPCKHDQ rxmm1, rxmm2/m128
66 0F 6D /r PUNPCKHQDQ rxmm1, rxmm2/m128
Действие: команды PUNPCKHBW, PUNPCKHWD, PUNPCKHDQ и PUNPCKHQDQ производят размещение iередованием элементов из операндов источник и приемник согласно следующей схеме:
PUNPCKHBW:
приемник[70]приемник[7164]; приемник[7164]приемник[10396];
приемник[158]источник[7164]; приемник[7972]источник[10396];
приемник[2316]приемник[7972]; приемник[8780]приемник[111104];
приемник[3124]источник[7972]; приемник[9588] источник[111104];
приемник[3932]приемник[8780]; приемник[10396]приемник[119112];
приемник[4740]источник[8780]; приемник[111104]источник[119112];
приемник[5548]приемник[9588], приемник[119112]приемник[127120];
приемник[6356]источник[9588]; приемник[127120]источник[127120];
PUNPCKHWD:
приемник[150]приемник[7964]; приемник[7964]приемник[11196];
приемник[3116]источник[7964]; приемник[9580]источник[11196];
приемник[4732]приемник[9580]; приемник[11196]привмник[127112];
приемник[63А8]источник[9580]; приемник[127112]источник[127112];
PUNPCKHDQ:
приемник[310]приемник[9564]; приемник[9564]приемник[12796];
приемник[6332]источник[9564]; приемник[12796]источник[12796];
PUNPCKHQDQ:
приемник[630]приемник[12764]; приемник[12764]исоточник[12764];
Флаги: не изменяются.
Исключения: РМ: #GP(0): 2,42; #MF; #NM: 3; #PF(fault-code); #SS(0): 1; #UD: 10; #AC(0)_cpl3; RM: #GP: 13, 16; #MF; #NM: 3; #UD: 17; VM: исключения реального режима; #PF(fault-code).
PUNPCKLBW/PUNPCKLWD/PUNPCKLDQ/ PUNPCKLQDQ приемник, источник
PUNPCKLBW/PUNPCKLWD/PUNPCKLDQ/PUNPCKLQDQ (UNPaCK Low Data) распаковка младших упакованных байт (слов, двойных слов, учетверенных слов) в слова (двойные слова, учетверенные слова, двойное учетверенное слово).
Синтаксис и машинный код:
66 0F 60 /r PUNPCKLBW rxmm1, rxmm2/m128
66 0F 61 /r PUNPCKLWD rxmm1, rxmm2/m128
66 0F 62 /r PUNPCKLDQ rxmm1, rxmm2/m128
66 0F 6C /r PUNPCKLQDQ rxmm1, rxmm2/m128
Действие: команды PUNPCKLBW, PUNPCKLWD, PUNPCKLDQ и PUNPCKLQDQ производят размещение iередованием элементов из операндов источник и приемник согласно следующей схеме:
PUNPCKLBW:
приемник[70]приемник[70]; приемник[7164]приемник[3932];
приемник[158]источник[70]; приемник[7972]источник[3932];
приемник[2316]приемник[158]; приемник[8780]приемник[4740];
приемник[3124]источник[158]; приемник[9588] источник[4740];
приемник[3932]приемник[2316]; приемник[10396]приемник[5548];
приемник[4740]источник[2316]; приемник[111104]источник[5548];
приемник[5548]приемник[3124], приемник[119112]приемник[6356];
приемник[6356]источник[3124]; приемник[127120]источник[6356];
PUNPCKLWD:
приемник[150]приемник[150]; приемник[7964]приемник[4732];
приемник[3116]источник[150]; приемник[9580]источник[4732];
приемник[4732]приемник[3116]; приемник[11196]привмник[6348];
приемник[63А8]источник[3116]; приемник[127112]источник[6348];
PUNPCKLDQ:
приемник[310]приемник[310]; приемник[9564]приемник[6332];
приемник[6332]источник[310]; приемник[12796]источник[6332];
PUNPCKLQDQ:
приемник[630]приемник[630]; приемник[12764]исоточник[630];
Флаги: не изменяются.
Исключения: РМ: #GP(0): 2,42; #MF; #NM: 3; #PF(fault-code); #SS(0): 1; #UD: 10;
#AC(0)_cpl3; RM: #GP: 13, 16; #MF; #NM: 3; #UD: 17; VM: исключения реального режима; #PF(fault-cocle); #AC(0)_u.
PXOR приемник, источник
PXOR (Packed logical Exclusive OR) упакованное логическое исключающее ИЛИ.
Синтаксис: PXOR xmm1, xmm2/m128
Машинный код: 66 0F EF /r
Действие: команда производит побитовую операцию логическое исключающее ИЛИ над всеми битами операндов источник и приемник. Результат помещается в операнд приемник. Флаги: не изменяются.
Исключения: РМ: #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).
SHUFPD приемник, источник, маска
SHUFPD (Shuffle Packed Double-Precision Floating-Point Values Description) перестановка упакованных значений с плавающей точкой двойной точности.
Синтаксис: SHUFPD xmm1, xmm2/m128, imm8
Машинный код: 66 0F С6 /r i8
Действие: переместить упакованные значения с плавающей точкой двойной точности из приемника и источника в приемник в соответствии со значением непосредственного операнда маска. Биты маски определяют номера упакованных значений с плавающей точкой двойной точности в источнике или приемнике, которые будут перемещены в приемник следующим образом:
маска.0 = 0: приемник[630] приемник[630];
маска.0 = 1: приемник[630] приемник[12764];
маска.1 = 0: приемник[12764] источник[630];
маска.1 = 1: приемник[12764] источник[12764].
Для перестановки в пределах одного регистра можно использовать один и тот же регистр ХММ в качестве источника и приемника.
Исключения: РМ: #GP(0): 37,42; #NM: 3; #PF(fault-code); #SS(0): 13; #UD: 10-12, 15; #XM; RM: #GP: 13,16; #NM: 3; #UD: 17-19,22; #XM; VM: исключения ре?/p>