Xreferat.com » Рефераты по информатике и программированию » Форматы данных и команды их обработки процессоров Pentium III, Pentium IV

Форматы данных и команды их обработки процессоров Pentium III, Pentium IV

/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-битных целых значения.

Синтаксис: 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) — возврат максимальных упакованных значений с плавающей точкой двойной точности.

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

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

Действие: сравнить упакованные значения с плавающей точкой двойной точности в источнике и приемнике и заместить максимальными из них соответствующие упакованные значения в приемнике. Если значение в источнике — SNAN (не QNAN), то оно помещается в приемник. Если только одно значение в приемнике или источнике — не число NaN (SNaN или QNAN), то в приемник помещается содержимое источника, которое может быть либо NAN, либо правильным значением числа с плавающей точкой.

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


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

MAXSD (return MAXimum Scalar Double-precision floating-point value) — возврат максимального скалярного значения с плавающей точкой двойной точности.

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

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

Действие: сравнить значения с плавающей точкой двойной точности в разрядах [63-0] источника и приемника и заместить максимальным из них значение в разрядах [63-0] приемника. Если значение в источнике — SNAN (не QNAN), то оно помещается в приемник. Если только одно значение в приемнике или источнике — не число NaN (SNaN или QNAN), то в приемник помещается содержимое источника, которое может быть либо NAN, либо правильным значением числа с плавающей точкой. Значение в разрядах [127-64] приемника не изменяется.

Исключения: SIMD (NE): #I (в том числе, если источник = QNaN), #D; PM: #GP(0): 37; #SS(0): 1; #NM: 3; #PF(fault-code); #UD: 10-12, 15; #ХМ; #АС(0)_срl3; RM: #GP: 13; #NM: 3; #UD: 17-19, 22; #XM; VM: исключения реального режима; #PF(fault-code); #AC(0)_u.


MFENCE

MFENCE (Memory FENCE) — упорядочить операции загрузки и сохранения. Синтаксис: MFENCE

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

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

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


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

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

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

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

Действие: сравнить упакованные значения с плавающей точкой двойной точности в источнике и приемнике и заместить минимальными из них соответствующие упакованные значения в приемнике. Если значение в источнике — SNAN (не QNAN), то оно помещается в приемник. Если только одно значение в приемнике или источнике — не число NaN (SNaN или QNAN), то в приемник помещается содержимое источника, которое может быть либо NAN, либо правильным значением числа с плавающей точкой.

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


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

MINSD (return MINimum Scalar Double-precision floating-point value) — возврат минимального скалярного значения с плавающей точкой двойной точности.

Синтаксис: MINSD xmm1, xmm2/m64

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

Действие: сравнить значения с плавающей точкой двойной точности в разрядах [63-0] источника и приемника и заместить минимальным из них значение в разрядах [63-0] приемника. Если значение в источнике — SNAN (не QNAN), то оно помещается в приемник. Если только одно значение в приемнике или источнике — не число NaN (SNaN или QNAN), то в приемник помещается содержимое источника, которое может быть либо NAN, либо правильным значением числа с плавающей точкой. Значение в разрядах [127-64] приемника не изменяется.

Исключения: SIMD (NE): #I (в том числе, если источник = QNaN), #D; PM: #GP(0): 37; #SS(0): 1; #NM: 3; #PF(fault-code); #UD: 10-12, 15; #ХМ; #АС(0)_ср13; RM: #GP: 13; #NM: 3; #UD: 17-19, 22; #XM; VM: исключения реального режима; #PF(fault-code); #AC(0)_u.


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

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

Синтаксис и машинный код:

0F 28 /r MOVAPS xmm1, xmm2/m128

0F 29 /r MOVAPS xmm2/m128, xmm1

Действие: переместить два двойных учетверенных слова (содержащих два упакованных значения с плавающей точкой двойной точности) из источника в приемник. Операнд в памяти должен быть выровнен на 16-байтовой границе.

Исключения: PM: #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: исключения реального режима; #PF(fault-code).


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

MOVD (Move Double word) — перемещение двойного слова между ХММ-регист-ром и 32-разрядным регистром (ячейкой памяти).

Синтаксис и машинный код:

66 0F 6Е /r MOVD rxmm, r/m32

66 0F 7E /r MOVD r/m32, rxmm

Действие:

• Если приемник является ХММ-регистром, поместить в биты 0-31 приемника значение источника, поместить в биты 32-127 приемника нулевое значение.

• Если приемник является 32-разрядной ячейкой памяти или регистром общего назначения, то поместить в приемник значение бит 0-31 источника (ХММ-регистра).

Флаги: не изменяются.

Исключения: РМ: #GP(0): 1, 2; #MF; #PF(fault-code); #SS(0): 1; #UD: 10, 12, 15; #NM 3; #AC(0)_cpl3; RM: #GP: 13; #MF; #NM: 3; #UD: 17,19,22; VM: #PF(fault-code); #AC(0)_u.


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

MOVDQA (MOVe Aligned Double Quadword) — перемещение выровненных 128 бит из источника в приемник.

Синтаксис и машинный код:

66 0F 6F /r MOVDQA rxmm1, rxmm2/m128

66 0F 7F /r MOVDQA rxmm2/m128, rxmml

Действие: переместить содержимое источника в приемник. Операнд в памяти должен быть выровнен на 16-байтовой границе.

Исключения: РМ: #GP(0): 2,42; #NM: 3; #SS(0): 1; RM: #GP: 13,16; #NM: 3; #UD: 17, 19, 22; #PF(fault-code); VM: исключения реального режима; #PF(fault-code).


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

MOVDQU (MOVe Unaligned Double Quadword description) — перемещение невыровненных 128 бит из источника в приемник.

Синтаксис и машинный код:

F3 0F 6F /r MOVDQU xmm1, xmm2/m128

F3 0F 7F /r MOVDQU xmm2/m128, xmm1

Действие: переместить содержимое источника в приемник.

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


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

MOVDQ2Q (MOVe Quadword from XMM to MMX register description) — перемещение младшего учетверенного слова ХММ-регистра в ММХ-регистр.

Синтаксис: MOVDQ2Q mm, xmm

Машинный код: F2 0F D6

Действие: переместить содержимое источника в приемник по схеме: приемник  источник[63-0].

Исключения: РМ: #NM: 3; #UD: 10, 12, 15; #MF; RM: исключения защищенного

режима; VM: исключения защищенного режима.


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

MOVHPD (MOVe High Packed Double-precision floating-point value) — перемещение старшего упакованного значения с плавающей точкой двойной точности.

Синтаксис и машинный код:

66 0F 16 /r MOVHPD rxmm, m64

66 0F 17 /r MOVHPD m64, rxmm

Действие: переместить учетверенное слово (содержащее упакованное значение с плавающей точкой двойной точности) из источника в приемник. Источник и приемник могут быть либо ХММ-регистром, либо 64-разрядной ячейкой памяти (но не одновременно). Для регистрового операнда перемещению подвергается старшее учетверенное слово (разряды [64-127]). Младшее учетверенное слово ХММ-регистра (разряды [0-63]) не изменяется.

Исключения: РМ: #GP(0): 37; #NM: 3; #PF(fault-code); #SS(0): 13; #UD: 10, 13, 19; #AC(0)_cpl3; RM: #GP: 13; #NM: 3; #UD: 12,13,17; VM: исключения реального режима; #PF(fault-code); #AC(0)_u.


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

MOVLPD (MOVe Low Packed Double-precision floating-point value) — перемещение младшего упакованного значения с плавающей точкой двойной точности.

Синтаксис и машинный код:

66 0F 12 /r MOVLPD rxmm, m64

66 0F 13 /r MOVLPD m64, rxmm

Действие: переместить учетверенное слово (содержащее упакованное значение с плавающей точкой двойной точности) из источника в приемник. Источник и приемник могут быть либо ХММ-регистром, либо 64-разрядной ячейкой памяти (но не одновременно). Для регистрового операнда перемещению подвергается младшее учетверенное слово (разряды [0-63]). Старшее учетверенное слово ХММ-регистра (разряды [64-127]) не изменяется.

Исключения: РМ: #GP(0): 37; #NM: 3; #PF(fault-code); #SS(0): 13; #UD: 10, 12, 13; #AC(0)_cpl3; RM: #GP: 13; #NM: 3; #UD: 17,19,20; VM: исключения реального режима; #PF(fault-code); #AC(0)_u.


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

MOVMSKPD (extract Packed Double-precision floating-point sign MaSK) — извлечение 2-битной знаковой маски упакованных значений с плавающей точкой двойной точности.

Синтаксис: MOVMSKPD r32, rxmm

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

Действие: извлечь знаковые разряды из упакованных значении с плавающей точкой двойной точности операнда источник (ХММ-регистр) и сохранить полученную знаковую маску в двух младших битах операнда приемник (32-битный общий регистр).

Исключения: РМ: #NM: 3; #ХМ; #UD: 10-12,15; RM: исключения защищенного режима; VM: исключения защищенного режима.

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

MOVNTDQ (store Double Quadword using Non-Temporal hint description) — сохранение двойного учетверенного слова из ХММ-регистра в память без использования кэша.

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

Машинный код: MOVNTDQ m128, rxmm

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


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

MOVNTI (store doubleword using Non-Temporal hint description) — сохранение двойного слова из 32-разрядного регистра общего назначения в память без использования кэша.

Синтаксис: MOVNTI m32, r32

Машинный код: 0F C3 /r

Исключения: РМ: #GP(0): 37; #PF(fault-code); #SS(0): 13; #UD: 15; RM: #GP: 13, 16; #NM: 3; #UD: 22; VM: исключения реального режима; #PF(fault-code).


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

MOVNTPD (store Packed Double-Precision floating-point values using Non-Temporal hint) — сохранение упакованных значений с плавающей точкой двойной точности из ХММ-регистра в память без использования кэша.

Синтаксис: MOVNTPD m128, rxmm

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

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


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

MOVQ (Move Quadword) — переместить учетверенное слово.

Синтаксис и машинный код:

F3 0F 7E MOVQ rxmm1, rxmm2/m64

66 0F D6 MOVQ rxmm2/m64, rxmm1

Действие:

• Если приемник и источник являются ХММ-регистрами, то изменить содержимое приемника следующим образом: приемник[63-0]источник[63-0]; разряды приемник[127-64] не изменяются.

• Если приемник — 64-разрядная ячейка памяти, то изменить содержимое приемника следующим образом: приемник[63-0]источник[63-0].

• Если источник — 64-разрядная ячейка памяти, то изменить содержимое приемника следующим образом: приемник[63-0]источник[63-0], приемник[63-0]0000000000000000h.

Флаги: не изменяются.

Исключения: РМ: #GP(0): 1, 2; #SS(0): 1; #UD: 10,12,15; #NM: 3; #MF; #PF(fault-code); #AC(0)_cpl3; RM: #GP: 13; #MF; #NM: 3; #UD: 17,19, 22; VM: исключения В реального режима; #PF(fault-code); #AC(0)_u.


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

MOVQ2DQ (MOVe Quadword from MMX to XMM register description) — перемещение учетверенного слова из ММХ-регистра в младшее учетверенное слово ХММ-регистра.

Синтаксис: MOVQ2DQ rxmm, rmmx

Машинный код: F3 0F D6

Действие: переместить содержимое источника в приемник по схеме: приемник[63-0]  источник; приемник[127-64]  00000000000000000h.

Исключения: РМ: #NM: 3; #UD: 10, 12, 15; #MF; RM: исключения защищенного режима; VM: исключения защищенного режима.


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

MOVSD (MOVe Scalar Double-precision floating-point value) — перемещение скалярного значения с плавающей точкой двойной точности.

Синтаксис и машинный код:

F2 0F 10 /r MOVSD rxmm1, rxmm2/m64

F2 0F 11 /r MOVSD rxmm2/m64, rxmm1

Действие: переместить скалярное значение с плавающей точкой двойной точности из разрядов [0-63] источника в разряды [0-63] приемника. Если операнды — ХММ-регистры, то разряды [64-127] приемника не изменяются. Если источник -ячейка памяти, то разряды [64-127] приемника обнуляются.

Исключения: РМ: #GP(0): 37; #SS(0): 13; #PF(fault-code); #NM: 3; #XM; #UD:

10-12,15; #AC(0)_cpl3; RM: #GP: 13; #NM: 3; #UD: 17-19,22; #ХМ; VM: исключения реального режима; #PF(fault-code); #AC(0)_u.


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

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

Синтаксис и машинный код:

66 0F 10 /r MOVUPD xmm1, xmm2/m128

66 0F 11 /r MOVUPD xmm2/m128, xmm1

Действие: переместить два двойных учетверенных слова (содержащих два упакованных значения с плавающей точкой двойной точности) из источника в приемник. Не требуется выравнивания операнда в памяти на 16-байтовой границе.

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


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

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

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

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

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

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


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

MULSD (MULtiply Scalar Double-precision floating-point values) — умножение скалярных упакованных значений с плавающей точкой двойной точности.

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

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

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

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


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

ORPD (bitwise logical OR 0F Double-precision floating-point values) — поразрядное логическое ИЛИ над упакованными значениями с плавающей точкой двойной точности.

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

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

Действие: выполнить операцию поразрядного логического ИЛИ над парами упакованных значений с плавающей точкой двойной точности в приемнике и источнике по схеме: приемник[127-0]приемник[127-0]) побитное_ОR источник[127-0].

Исключения: PM: #GP(0): 37,42; #NM: 3; #PF(fault-code); #SS(0): 13; #UD: 10-12, 15; #XM; RM: #GP: 13,16; #NM: 3;

Если Вам нужна помощь с академической работой (курсовая, контрольная, диплом, реферат и т.д.), обратитесь к нашим специалистам. Более 90000 специалистов готовы Вам помочь.
Бесплатные корректировки и доработки. Бесплатная оценка стоимости работы.

Поможем написать работу на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту
Нужна помощь в написании работы?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Пишем статьи РИНЦ, ВАК, Scopus. Помогаем в публикации. Правки вносим бесплатно.

Похожие рефераты: