Форматы данных и команды их обработки процессоров Pentium III, Pentium IV
Рефераты >> Программирование и компьютеры >> Форматы данных и команды их обработки процессоров Pentium III, Pentium IV

Синтаксис: CVTTPD2PI rmmx, rxmm/m128

Машинный код: 66 0F 2C /r

Действие: алгоритм работы команды показан на рисунке ниже.

Если преобразованный результат больше чем максимально возможное целочисленное 32-битное значение, то будет возвращено значение 80000000h.

Исключения: SIMD (NE): #I,#Р; РМ: #GP(0): 37, 42; #MF; #NM: 3; #PF(fault-code); #SS(0): 13; #UD: 10-12, 15; #XM; RM: #GP: 13, 16; #MF; #NM: 3; #UD: 17-19, 22; #ХМ; VM: исключения реального режима; #PF(fault-code).

CVTTPD2DQ приемник, источник

CVTTPD2DQ (ConVerT with Truncation Packed Double-precision floating-point values to packed Doubleword integers) — преобразование усечением двух упакованных значений с плавающей точкой двойной точности в два упакованных 32-битных целых.

Синтаксис: CVTTPD2DQ rxmm1, rxmm2/m128

Машинный код: 66 0F E6

Действие: алгоритм работы команды показан на рисунке ниже.

В случае, когда не удается выполнить точное преобразование, значение округляется в сторону нуля. Если преобразованный результат больше чем максимально возможнее целочисленное 32-битное значение, то возвращается значение 80000000h.

Исключения: SIMD (NE): #I, #Р; РМ: #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; #ХМ; VM: исключения реального режима; #PF(fault-code).

CVTTPS2DQ приемник, источник

CVTTPS2DQ (ConVerT with Truncation Packed Single-precision floating-point values to packed Doubleword integers) — преобразование (путем отбрасывания дробной части) четырех упакованных значений с плавающей точкой одинарной точности в четыре упакованных 32-битных целых со знаком.

Синтаксис: CVTTPS2DQ rxmm1, rxmm2/m128

Машинный код: F3 0F 5B /r

Действие: алгоритм работы команды показан на рисунке ниже.

В случае, когда не удается выполнить точное преобразование, значение округляется в сторону нуля. Если преобразованный результат больше чем максимально возможнее целочисленное 32-бнтное значение, то будет возвращено значение 80000000h.

Исключения: SIMD (NE): #I, #Р; РМ: #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; #ХМ; VM1; исключения реального режима; #PF(fault-code).

CVTTSD2SI приемник, источник

CVTTSD2SI (ConVerT with Truncation Scalar Double-precision floating-point value to Signed doubleword Integer) — преобразование (путем отбрасывания дробной части) скалярного значения с плавающей точкой двойной точности в 32-битное целое.

Синтаксис: CVTTSD2SI r32, rxmm/m64

Машинный код: F2 0F 2C /r

Действие: алгоритм работы команды показан на рисунке ниже.

В случае, когда не удается выполнить точное преобразование, значение округляется в сторону нуля. Если преобразованный результат больше чем максимально возможное целочисленное 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: исключения реального режима; #AC(0)_u; #PF(fault-code).

DIVPD приемник, источник

DIVPD (DIVide Packed Double-precision floating-point values) — деление упакованных значений с плавающей точкой двойной точности.

Синтаксис: DIVPD xmm1, xmm2/m128

Машинный код: 66 0F 5E /r

Действие: разделить пары упакованных значений с плавающей точкой двойнор точности источника и приемника по схеме: приемник[63-0]ßприемник[63-0]/источник[63-0]; приемник[127-64]ßприемник[127-64]/источник[127-64].

Исключения: SIMD (NE): #O, #U, #I, #Z, #P, #D; PM: #GP(0): 37,42; #SS(0): 13; #PF(fault-code); #NM: 3; #UD: 10-12, 15; #XM; RM: #GP: 13, 16; #NM: 3; #VD: 17-19, 22; #XM; VM: исключения реального режима; #PF(fault-code).

DIVSD приемник, источник

DIVSD (DIVide Scalar Double-Precision Floating-Point Values) — деление скалярных упакованных значений с плавающей точкой двойной точности.

Синтаксис: DIVSD rxmm1, rxmm2/m64

Машинный код: F2 0F 5E /r

Действие: разделить младшие упакованные значения с плавающей точкой двойной точности источника и приемника по схеме: приемник[63-0]ßприемник[63-0]/ источник[63-0]; приемник[127-64] — не изменяется.

Исключения: SIMD (NE): #O, #U, #Z, #I, #P, #D; PM: #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.

LFENCE адрес_байта

LFENCE (Load FENCE) — упорядочить операции загрузки.

Синтаксис: LFENCE

Машинный код: 0F AE /5

Действие: выполнить упорядочивание исполнения команд загрузки из памяти, которые были инициированы перед этой командой LFENCE. Эта операция гарантирует, что каждая команда загрузки, за которой следует в программе команда LFENCE, глобально видима перед любой другой командой загрузки, за которой следует команда LFENCE. Команда LFENCE упорядочивается относительно команд загрузки, других команд LFENCE, MFENCE и любых команд упорядочивания (сериализации, типа команды CPUID). Она не упорядочивается относительно команд сохранения в памяти или команды SFENCE.

Исключения: отсутствуют.

MASKMOVDQU источник, маска

MASKMOVDQU (Store Selected Bytes 0F Double Quadword) — выборочная запись байт из источника в память с использованием байтовой маски в приемнике.

Синтаксис: 66 0F F7 /r

Машинный код: MASKMOVDQU rxmm1, rxmm2

Действие: сохранить выбранные байты операнда источник в 128-разрядную ячейку памяти. Операнд маска определяет байты источника, которые сохраняются в памяти. Местоположение первого байта ячейки памяти приемника, в которую сохраняются байты, определяются парой DS:DI/EDI. Старший значащий бит каждого байта операнда маска определяет, будет ли сохранен в приемнике соответствующий байт источника: 0 — байт не сохраняется; 1 — байт сохраняется. Команда MASKMOVEDQU генерирует указание процессору не использовать кэш. Это указание реализуется посредством метода кэширования WC (Write Combining — память с комбинированной записью). При этом операции упорядочивания, осуществляемые командами SFENCE или MFENCE, необходимо использовать совместно с командами MASKMOVEDQU. Для многопроцессорной конфигурации это особенно важно, так как различным процессорам могут требоваться различные типы памяти для чтения/записи ячейки приемника.

Исключения: PM: #GP(0): 37 (в том числе при нулевой маске); #NM: 3; #PF(fault-code); #SS(0): 13 (в том числе при нулевой маске); #UD: 10, 12, 15; RM: #GP: 13 (в том числе при нулевой маске); #NM: 3; #UD: 17,19, 22; VM: исключения реального режима; #PF(fault-code).

MAXPD приемник, источник

MAXPD (return MAXimum Packed Double-precision floating-point values) — возврат максимальных упакованных значений с плавающей точкой двойной точности.


Страница: