Форматы данных и команды их обработки процессоров Pentium III, Pentium IVРефераты >> Программирование и компьютеры >> Форматы данных и команды их обработки процессоров Pentium III, Pentium IV
В случае, когда не удается выполнить точное преобразование, значение округляется в соответствии с полем MXCSR.RC. Если преобразованный результат больше чем максимально возможное целочисленное 32-битное значение, то возвращается значение 80000000h.
Исключения: SIMD (NE): #I, #Р; РМ: #GP(0): 37,42; #SS(0): 13; #PF(fault-code); #MF; #NM: 3; #XM; #UD: 10, 11, 12, 15; RM: #GP: 13, 16; #NM: 3; #MF; #XM;
#UD: 17-19, 22; VM: исключения реального режима; #PF(fault-code).
CVTPD2PS приемник, источник
CVTPD2PS (CoVerT Packed Double-precision floating-point values to Packed Single-precision floating-point values) — преобразование двух упакованных значений с плавающей точкой двойной точности в два упакованных значения с плавающей точкой одинарной точности.
Синтаксис: CVTPD2PS rxmm1, rxmm2/m128
Машинный код: 66 0F 5A /r
Действие: алгоритм работы команды показан на рисунке ниже.
В случае, когда не удается выполнить точное преобразование, значение округляется в соответствии с полем MXCSR.RC.
Исключения: SIMD (NE): #O, #U, #I, #Р, #D; PM: #GP(0): 37, 42; #SS(0): 13;
#PF(fault-code); #NM: 3; #XM; #UD: 10-12, 15; RM: #GP: 13, 16; #NM: 3; #ХМ; #UD: 17-19, 22; VM: исключения реального режима; #PF(fault-code).
CVTP12PD приемник, источник
CVTPI2PD (ConVerT Packed doubleword Integers to Packed Double-precision floating-point values) — преобразование двух упакованных 32-битных целых в два упакованных значения с плавающей точкой двойной точности.
Синтаксис: CVTP12PD rxmm, rmmx/m64
Машинный код: 66 0F 2A /r
Действие: алгоритм работы команды показан на рисунке ниже.
Исключения: PM: #GP(0): 37; #SS(0): 13; #PF(fault-code); #NM: 3; #MF; #XM;
#UD: 10-12,15; #AC(0)_cpl3; RM: #GP: 13; #NM: 3; #MF; #XM; #UD: 17-19, 22; VM: исключения реального режима; #АС; #PF(fault-code); #AC(0)_u.
CVTPS2DQ приемник, источник
CVTPS2DQ (ConVerT Packed Single-precision floating-point values to packed Doubleword integers) — преобразование четырех упакованных значений с плавающей точкой одинарной точности в четыре упакованных 32-битных целых со знаком.
Синтаксис: CVTPS2DQ rxmm1, rxmm2/m128
Машинный код: 66 0F 5В /r
Действие: алгоритм работы команды показан на рисунке ниже.
В случае когда не удается выполнить точное преобразование, значение округляется в соответствии с полем MXCSR.RC. Если преобразованный результат больше чем максимально возможное целочисленное 32-битное значение, то возвращается значение 80000000h.
Исключения: SIMD (NE): #I, #P; PM: #GP(0): 37,42; #SS(0): 13; #PF(fault-code); #MF; #NM: 3; #XM; #UD: 10, 11, 12, 15; RM: #GP: 13, 16; #NM: 3; #MF; #XM;
#UD: 17-19, 22; VM: исключения реального режима; #PF(fault-code).
CVTPS2PD приемник, источник
CVTPS2PD (CoVerT Packed Single-precision floating-point values to Packed Double-precision floating-point values) — преобразование двух упакованных значений с плавающей точкой одинарной точности в два упакованных значения с плавающей точкой двойной точности.
Синтаксис: CVTPS2PD rxmm1, rxmm2/m64
Машинный код: 0F 5A /r
Действие: алгоритм работы команды показан на рисунке ниже.
Исключения: РМ: #GP(0): 37; #SS(0): 13; #PF(fault-code); #NM: 3; #XM; #UD:
10-12,15; #AC(0)_cpl3; RM: #GP: 13; #NM: 3; #XM; #UD: 17-19,22; VM: исключения реального режима; #PF(fault-code); #AC(0)_u.
CVTSD2SI приемник, источник
CVTSD2SI (ConVerT Scalar Double-precision floating-point value to Doubleword Integer) — преобразование скалярного значения с плавающей точкой двойной точности в 32-битное целое.
Синтаксис: CVTSD2SI r32, rxmm/m64
Машинный код: F2 0F 2D /r
Действие: алгоритм работы команды показан па рисунке ниже.
В случае, когда не удается выполнить точное преобразование, значение округляется в соответствии с полем MXCSR.RC. Если преобразованный результат больше чем максимально возможное целочисленное 32-битное значение, то возвращается значение 80000000h.
Исключения: SIMD (NE): #I, #Р; РМ: #GP(0): 37; #NM: 3; #PF(fault-code); #SS(0): 13; #UD: 10-12, 15; #XM; #AC(0)_cpl3; RM: #GP: 13; #NM: 3; #UD: 17-19, 22; #ХМ; VM: исключения реального режима; #PF(fault-code); #AC(0)_u.
CVTSD2SS приемник, источник
CVTSD2SS (ConVerT Scalar Double-precision floating-point value to Scalar Single-precision floating-point value) — преобразование скалярного значения с плавающей точкой двойной точности в скалярное значение с плавающей точкой одинарной точности.
Синтаксис: CVTSD2SS rxmm1, rxmm2/m64
Машинный код: F2 0F 5A /r
Действие: алгоритм работы команды показан на рисунке ниже.
В случае, когда не удается выполнить точное преобразование, значение округляется в соответствии с полем MXCSR.RC.
Исключения: SIMD (NE): #O, #U, #I, #Р, #D; PM: #GP(0): 37; #NM: 3; #PF(fault-code); #SS(0): 13; #UD: 10-12, 15; #ХМ; #АС(0)_ср13; RM: #GP: 13; #NM: 3; #XM; #UD: 17-19, 22; VM: исключения реального режима; #PF(fault-code); #AC(0)_u.
CVTS12SD приемник, источник
CVTSI2SD (ConVerT Signed doubleword Integer to Scalar Double-precision floatingpoint value) — преобразование 32-битного целого значения со знаком в упакованное значение с плавающей точкой двойной точности.
Синтаксис: CVTS12SD rxmm, r/m32
Машинный код: F2 0F 2A /r
Действие: алгоритм работы команды показан на рисунке ниже.
Исключения: РМ: #GP(0): 37; #NM: 3; #PF(fault-code); #SS(0): 13; #UD: 10-12, 15; #XM; #AC(0)_cpl3; RM: #GP: 13; #NM: 3; #UD: 17-19, 22; #XM; VM: исключения реального режима; #AC(0)_u; #PF(fault-code).
CVTSS2SD приемник, источник
CVTSS2SD (ConVerT Scalar Single-Precision floating-point value to Scalar Double-precision floating-point value) — преобразование скалярного значения с плавающей точкой одинарной точности в скалярное значение с плавающей точкой двойной точности.
Синтаксис: CVTSS2SD rxmm1, rxmm2/m32
Машинный код: F3 0F 5A /r
Действие: алгоритм работы команды показан на рисунке ниже.
Исключения: РМ: #GP(0): 37; ftNM: 3; #PF(fault-code); #SS(0): 13; #UD: 10-12, 15; #ХМ; #АС(0)_ср13; RM: #GP: 13; #NM: 3; #UD: 17-19, 22; #XM; VM: исключения реального режима; #AC(0)_u; #PF(fault-code).
CVTTPD2PI приемник, источник
CVTTPD2PI (ConVerT with Truncation Packed Double-precision floating-point values to Packed doubleword Integers) — преобразование (путем отбрасывания дробной части) двух упакованных значений с плавающей точкой двойной точности в два упакованных 32-битных целых значения.