Синтаксис: MULPS rxmmi, rxmm2/m128
Машинный код: 00001111:01011001:mod rxmm1 r/m
Действие: команда умножает четыре пары вещественных чисел в коротком формате. Схема работы команды MULPS показана на следующем рисунке.
Исключения: 1; NE: #O, #U, #I, #P, #D; PM: #GP(0): 37; #NM: 3; #PF(fault-code); #SS(0): 13; #UD: 10, 11; #XM; RM: #GP: 13; #NM: 3; #UD: 17, 18; #XM; VM: исключения реального режима; #PF(fault-code).
MULSS приемник, источник
MULSS (MULtiply Scalar Single-precision float-point) — умножение скалярных значений в формате ХММ.
Синтаксис: MULSS rxmm1,rxmm2/m32
Машинный код: 11110011:00001111:01011001:mod rxmm1 r/m
Действие: команда умножает вещественные значения в младших парах операндов в формате ХММ. Операнды источник и приемник находятся в регистре ХММ, кроме того, операнд источник может находиться в 32-битной ячейке памяти. Схема работы команды MULSS показана на следующем рисунке.
Исключения: 1; NE: #O, #U, #I, #P, #D; PM: #GP(0): 37; #NM: 3; #PF(fault-code); #SS(0): 13; #UD: 10,11; #XM; RM: #GP: 13; #NM: 3; #UD: 17,18; #ХМ; VM: исключения реального режима; #АС(0); ftPF(fault-code).
ORPS приемник, источник
ORPS (bit-wise logical OR for Packed Single-precision float-point) — поразрядное логическое ИЛИ над каждой парой бит упакованных операндов источник и приемник в формате ХММ.
Синтаксис: ORPS rxmmi, rxmm2/m128
Машинный код: 00001111:01010110:mod rxmm1 r/m
Исключения: 1; РМ: #GP(0): 37; #NM: 3; #PF(fault-code); #SS(0): 13; #UD: 10; RM: #GP: 13; #NM: 3; #UD: 17; VM: исключения реального режима; #PF(fault-code).
RCPPS приемник, источник
RCPPS (ReCiProcal Packed Single-precision float-point) — вычисление обратных упакованных значений в формате ХММ.
Синтаксис: RCPPS rxmm1, rxmm2/m128
Машинный код: 00001111:01010011:mod rxmm1 r/m
Действие: команда вычисляет обратные значения элементов источника по формуле 1/(элемент_источника). Максимальная ошибка вычисления:
. Схема работы команды RCPPS показана на следующем рисунке.Исключения: 1; РМ: #GP(0): 37; #NM: 3; #PF(fault-code); #SS(0): 13; #UD: 10; RM: #GP: 13; #NM: 3; #UD: 17; VM: исключения реального режима; #PF(fault-code).
RCPSS приемник, источник
RCPSS (ReCiProcal Scalar Single-precision float-point) — скалярное вычисление обратного упакованного значения в формате ХММ.
Синтаксис: RCPSS rxmm1, rxmm2/m32
Машинный код: 11110011:00001111:01010011:mod rxmm1 r/m
Действие: команда вычисляет обратное значение младшего элемента операнда источник по формуле 1/(элемент_источника). Максимальная ошибка вычисления:
.Исключения: РМ: #АС: 5; #GP(0): 37; #NM: 3; #PF(fault-code); #SS(0): 13; #UD: 10; RM: #GP: 13; #NM: 3; #UD: 17; VM: #AC: 5; исключения реального режима;
#PF(fault-code).
RSQRTPS приемник, источник
RSQRTPS (Reciprocal SQuare RooT Packed Single-precision float-point) — вычисление обратных значений квадратного корня упакованных значений в формате ХММ.
Синтаксис: RSQRTPS rxmm1, rxmm2/m128
Машинный код: 00001111:01010010:mod rxmm1 r/m
Действие: команда для каждого элемента элемент_источника операнда источник выполняет следующие два действия: вычислить квадратный корень элемент_ис-точника; вычислить обратную величину полученного значения корня по формуле:
. Максимальная ошибка вычисления: .Исключения: 1; РМ: #GP(0): 37; #NM: 3; #PF(fault-code); #SS(0): 13; #UD: 10,12,13; RM: #GP: 13; #NM: 3; #UD: 17, 19, 20; VM: исключения реального режима;
#PF(fault-code).
RSQRTSS приемник, источник
RSQRTSS (Reciprocal SQuare RooT Scalar Single-precision float-point) — скалярная аппроксимация обратных значений квадратного корня упакованных значений в формате ХММ.
Синтаксис: RSQRTSS rxmm1, rxmm2/m32
Машинный код: 11110011:00001111.01010010:mod rxmm r/m
Действие: команда для младшего элемента элемент_источника операнда источник выполняет следующие два действия: вычисляет корень квадратный элемент_источника; вычисляет обратную величину полученного значения корня по формуле:
. Максимальная ошибка вычисления: . Старшие элементы операнда приемник не изменяются.Исключения: РМ: #АС(0); #GP(0): 37; #NM: 3; #PF(fault-code); #SS(0): 13; #UD: 10; RM: #GP: 13; #NM: 3; #UD: 17; VM: исключения реального режима; #АС: 5;
#PF(fault-code).
SHUFPS приемник, источник, маска
SHUFPS (Shuffle Packed Single-precision float-point) — перераспределение упакованных значений в формате ХММ.
Синтаксис: SHUFPS rxmm1, rxmm2/m128,i8
Машинный код: 00001111:11000110:mod rxmm1 r/m: i8
Действие: команда перераспределяет любые два из четырех двойных слов приемника в два младших двойных слова того же приемника и любые два из четырех двойных слов источника в два старших двойных слова приемника. Если использовать один и тот же регистр ХММ в качестве источника и приемника, то можно выполнять любые перестановки в пределах одного регистра. Каждая пара бит маски определяет номер двойного слова источника или приемника, которое будет перемещено в приемник следующим образом:
• маска[1:0]
• 00 приемник[00...31] - источник[00...31]
• 01 приемник[00...31] - источник[32...63]
• 10 приемник[00...31] - источник[64...95]
• 11 приемник[00...31] - источник[96..127]
• маска[3:2]
• 00 приемник[32...63] - источник[00...31]
• 01 приемник[32...63] - источник[32...63]
• 10 приемник[32...63] - источник[64...95]
• 11 приемник[32...63] - источник[96...127]
• маска[5:4]
• 00 приемник[64...95] - источник[00...31]
• 01 приемник[64...95] - источник[32...63]
• 10 приемник[64...95] - источник[64...95]
• 11 приемник[64...95] - источник[96...127]
• маска[7:6]
• 00 приемник[96...127] - источник[00...31]
• 01 приемник[96...127] - источник[32...63]
• 10 приемник[96...127] - источник[64...95]
• 11 приемник[96...127] - источник[96...127]
Схематически работа команды SHUFPS показана на следующем рисунке.
Исключения: 1; РМ: #GP(0): 37; #NM: 3; #PF(fault-code); #SS(0): 13; #UD: 10,12,13; RM: #GP: 13; #NM: 3; #UD: 17, 19, 20; VM: исключения реального режима; #PF (fault-code).
SQRTPS приемник, источник
SQRTPS (SQuare RooT Packed Single-precision float-point) — корень квадратный упакованных значений в формате ХММ.
Синтаксис: SQRTPS rxmm1, rxmm2/m128
Машинный код: 00001111:01010001 :mod rxmm1 r/m
Действие: команда извлекает квадратный корень из четырех упакованных вещественных чисел в коротком формате.
Исключения: 1; NE: #I, #Р, #D; PM: #GP(0): 37; #NM: 3; #PF(fault-code); #SS(0): 13; #UD: 10-13; #XM; RM: #GP: 13; #NM: 3; #UD: 17-20; #XM; VM: исключения реального режима; #PF(fault-code).
SQRTSS приемник, источник
SQRTSS (SQuare RooT Scalar Single-precision float-point) — скалярное извлечение квадратного корня.
Синтаксис: SQRTSS rxmm1, rxmm2/m32
Машинный код: 11110011:00001111:01010001:mod rxmm1 r/m
Действие: команда извлекает квадратный корень из младшего двойного слова операнда источник, который должен представлять собой упакованное вещественное число в формате ХММ.
Исключения: NE: #I, #P, #D; PM: #AC(0); #GP(Q): 37; #NM: 3; #PF(fault-code); #SS(0): 13; #UD: 10-13; #XM; RM: #GP: 13; #NM: 3; #UD: 17-20; #XM; VM: исключения реального режима; #АС(0); #PF(fault-code).
STMXCSR приемник
STMXCSR (STore Streaming SIMD Extension Control/Status register MXCSR) -сохранение регистра управления/состояния MXCSR в 32-битной ячейке памяти.
Синтаксис: STMXCSR m32
Машинный код: 00001111:10101110:mod 011 m32
Исключения: PM: #AC(0); #GP(0): 37; #NM: 3; #PF(fault-code); #SS(0): 13; #UD: 10,12,13; RM: #GP: 13; #NM: 3; #UD: 17,19,20; VM: исключения реального режима; #AC(0); #PF(fault-code).
SUBPS приемник, источник
SUBPS (SUBtract Packed Single-precision float-point) — вычитание упакованных значений в формате ХММ.
Синтаксис: SUBPS rxmm1, rxmm2/m128
Машинный код: 00001111:01011100:mod rxmm1 r/m
Исключения: 1; NE: #O, #U, #I, #P, #D; PM: #GP(0): 37; #NM: 3; #PF(fault-code); #SS(0): 13; #UD:10-13; #XM; RM: #GP: 13; #NM: 3; ttVD: 17-20; #XM; VM:
исключения реального режима; #PF(fault-code).
SUBSS приемник, источник
SUBSS (SUBtract Scalar Single-precision float-point) — вычитание скалярных значений в формате ХММ.
Синтаксис: SUBSS rxmm1, rxmm2/m32
Машинный код: 11110011:00001111:01011100:mod rxmm r/m
Действие: команда вычитает значения младшей пары вещественных чисел в формате ХММ.
Исключения: NE: #O, #U, #I, #P, #D; PM: #AC(0); #GP(0): 37; #NM: 3; #PF(fault-code); #SS(0): 13; #UD: 10-13; #XM; RM: #GP: 13; #NM: 3; #UD: 17-20; #XM; VM: исключения реального режима; #АС(0); #PF(fault-code).
UCOMISS приемник, источник
UCOMISS (Unordered Scalar Single-fp COMpare and set eflags) — неупорядоченное скалярное сравнение значений в формате ХММ с установкой флагов в EFLAGS.
Синтаксис: UCOMISS rxmm1, rxmm2/m32
Машинный код: 00001111:00101110:mod rxmm1 r/m
Действие: сравнение пары вещественных элементов в коротком формате, расположенных в младшем двойном слове операндов в формате ХММ. В результате выполнения команды формируются значения флагов ZF, PF и CF, а флаги 0F, SF и AF устанавливаются в 0 (см. ниже). В процессе работы команда распознает специальные значения qNaN и sNaN. При возникновении незамаскированных исключений расширения ХММ регистр EFLAGS не изменяется.
Соотношение операндов | Значение флагов |
Приемник>источник | 0F=SF=AF=ZF=PF=CF=0 |
Приемник<источник | 0F=SF=AF=ZF=PF=0; CF=1 |
Приемник=источник | 0F=SF=AF=PF=CF=0; ZF=1 |
Приемник или источник=qNaN или sNaN | 0F=SF=AF=0; ZF=PF=CF=1 |
Исключения: NE: #I, #D; PM: #AC(0); #GP(0): 37; #NM: 3; #PF(fault-code); #SS(0): 13; #UD: 10-13; #XM; RM: #GP: 13; #NM: 3; #UD: 17-20; #XM; VM: исключения реального режима; #АС(0); #PF(fault-code).
UNPCKHPS приемник, источник
UNPCKHPS (Unpack High Packed Single-precision float-point data) — чередование верхних упакованных значений в формате ХММ.
Синтаксис: UNPCKHPS rxmm1, rxmm2/m128
Машинный код: 00001111:00010101:mod rxmm1 r/m
Действие: перемещение путем чередования двух старших двойных слова приемника и источника. Младшие двойные слова приемника и источника игнорируются. Схема выполнения команды UNPCKHPS показана на следующем рисунке.
Исключения: 1; PM: #GP(0): 37; #NM: 3; #PF(fault-code); #SS(0): 13; #UD: 10,12,13; RM: #GP: 13; #NM: 3; #UD: 17, 19, 20; VM: исключения реального режима;
#PF(fault-code).
UNPCKLPS приемник, источник
UNPCKLPS (Unpack Low Packed Single-precision float-point data) — чередование нижних упакованных значений в формате ХММ.
Синтаксис: UNPCKLPS rxmm1, rxmm2/m128
Машинный код: 00001111:00010100:mod rxmm1 r/m
Действие: перемещение путем чередования двух младших двойных слова приемника и источника. Старшие двойные слова приемника и источника игнорируются. Схема работы команды UNPCKLPS показана на следующем рисунке.