Форматы данных и команды их обработки процессоров Pentium III, Pentium IVРефераты >> Программирование и компьютеры >> Форматы данных и команды их обработки процессоров Pentium III, Pentium IV
Синтаксис: 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) — умножение упакованных значений с плавающей точкой двойной точности.