Форматы данных и команды их обработки процессоров Pentium III, Pentium IVРефераты >> Программирование и компьютеры >> Форматы данных и команды их обработки процессоров Pentium III, Pentium IV
Действие: для пары значений операндов приемник и источник выполняется сравнение, в результате которого формируются единичные (если условие выполнено) или нулевые элементы (если условие не выполнено). Значение источника может быть расположено в 32-битной ячейке памяти или в младшем двойном слове регистра ХММ. Значение приемника расположено в младшем двойном слове другого регистра ХММ.
Возможные значения условий приведены в описании команды CMPPS.
Исключения: 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; #ХМ; VM: исключения реального режима; #АС(0); #PF(fault-code).
COMISS приемник, источник
COMISS (COMpare ordered Scalar Single-precision float-point COMpare and Set EFLAGS) — скалярное упорядоченное сравнение значений в формате ХММ с установкой EFLAGS.
Синтаксис: COMISS rxmm1, rxmm2/m32
Машинный код: 00001111:00101111 :mod rxmm1 r/m
Действие: команда сравнивает пару значений операндов приемник и источник, в результате чего устанавливаются флаги в регистре EFLAGS, как показано ниже.
Значение источника может быть расположено в 32-битной ячейке памяти или младшем двойном слове регистра ХММ. Значение приемника расположено в младшем двойном слове другого регистра ХММ.
Соотношение операндов |
Значение флагов |
Приемник>источник |
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 |
При возникновении незамаскированных исключений значение EFLAGS не изменяется. Исключения: 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; #ХМ; VM: исключения реального режима; #АС(0); #PF(fault-code).
CVTPI2PS приемник, источник
CVTPI2PS (Conversion Two Packed signed Int32 to Packed Single-precision float-point) — преобразование двух упакованных 32-битных целых в два упакованных вещественных значения.
Синтаксис: CVTP12PS rxmm1, rmmx2/m64
Машинный код: 00001111:00101010:mod rxmm1 r/m
Действие: алгоритм работы команды показан на рисунке ниже.
В случае, когда не удается выполнить точное преобразование, результат округляется в соответствии с полем MXCSR.RC.
Исключения: NE: #Р; РМ: #АС(0); #GP(0): 37; #MF; #NM: 3; #PF(fault-code);
#SS(0): 13; #UD: 10-13; #XM; RM: #AC; #GP: 13; #MF; #NM: 3; #UD: 17-20; #XM; VM: исключения реального режима; #АС(0); #PF(fault-code).
CVTPS2PI приемник, источник
CVTPS2PI (ConVersion Two Packed Single-precision float-point to Packed signed Int32) — преобразование двух вещественных целых в два упакованных 32-битных целых.
Синтаксис: CVTPS2PI rmmx1, rmmx2/m128
Машинный код: 00001111:00101101 :mod rmmx1 r/m
Действие: алгоритм работы команды показан на рисунке ниже.
Если преобразованный результат больше, чем максимально возможное целочисленное 32-битное значение, то возвращается значение 80000000h. В случае, когда не удается выполнить точное преобразование, значение округляется в соответствии с полем MXCSR.RC.
Исключения: NE: #I, #Р; РМ: #АС(0); #GP(0): 37; #MF; #NM: 3; #PF(fault-code); #SS(0): 13; #UD: 10-13; #XM; RM: #GP: 13; #MF; #NM: 3; #UD: 17-20; #XM; VM: исключения реального режима; #АС(0); #PF(fault-code).
CVTSI2SS приемник, источник
CVTSI2SS (ConVerT Scalar signed Int32 to Scalar Single-precision float-point) -скалярное преобразование знакового 32-битного целого в вещественное значение.
Синтаксис: CVTS12SS rxmm, r32/m32
Машинный код: 11110011:00001111:00101010:mod rxmm r/m
Действие: алгоритм работы команды показан на рисунке ниже.
В случае когда не удается выполнить точное преобразование, значение округляется в соответствии с полем MXCSR.RC.
Исключения: NE: #Р; РМ: #АС(0); #GP(0): 37; #NM: 3; #PF(fault-code); #SS(0): 13; #UD: 10-13; #XM; RM: #GP: 13; #NM: 3; #UD: 17-20; #ХМ; VM: исключения реального режима; #АС(0); #PF(fault-code).
CVTSS2SI приемник, источник
CVTSS2SI (ConVerT Scalar Single-precision float-point to Scalar signed Int32) -скалярное преобразование вещественного целого в 32-битное знаковое целое.
Синтаксис: CVTSS2SI r32,rxmm/m128
Машинный код: 11110011:00001111:00101101 :mod r32 r/m
Действие: значение источника хранится в младшем двойном слове регистра ХММ или в 128-битной ячейке памяти. Приемник — один из 32-битных регистров.
Алгоритм работы команды показан на рисунке ниже.
Если преобразованный результат больше, чем максимально возможное целочисленное 32-битное значение, то возвращается значение 80000000h. В случае, когда не удается выполнить точное преобразование, значение округляется в соответствии с полем MXCSR.RC.
Исключения: NE: #I, #Р; РМ: #АС(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).
CVTTPS2PI приемник, источник
CVTTPS2PI (ConVerT Truncate two Packed Single-precision float-point to Packed signed Int32) — преобразование (путем отбрасывания дробной части) двух вещественных целых в два упакованных 32-битных целых значения.
Синтаксис: CVTTPS2PI rmmx,rxmm/m128
Машинный код: 00001111:00101100:mod rmmx r/m
Действие: алгоритм работы команды показан на рисунке ниже.
Если преобразованный результат больше, чем максимально возможное целочисленное 32-битное значение, то будет возвращено значение 80000000h.
Исключения: NE: ffl,#P; РМ: #АС(0); #GP(0): 37; #MF; #NM: 3; #PF(fault-code); #SS(0): 13; #UD: 10-13; #XM; RM: #GP: 13; #MF; #NM: 3; #UD: 17-20; #XM; VM: исключения реального режима; #АС(0); #PF(fault-code).
CVTTSS2SI приемник, источник
CVTTSS2SI (ConVerT Truncate Scalar Single-precision float-point to Scalar signed Int32) — скалярное преобразование (путем отбрасывания дробной части) вещественного целого в знаковое целое.
Синтаксис: CVTTSS2SI r32,rxmm/m128
Машинный код: 11110011:00001111:00101100:mod r32 r/m
Действие: значение источника хранится в младшем двойном слове регистра ХММ или в 128-битной ячейке памяти. Приемник — один из 32-битных регистров. Алгоритм работы команды показан на рисунке ниже.