وو

وحید آنلاین . آرشیو وبلاگ وحیدمی دات آی آر . شرکت بیان. vahidmy.blog.ir

وو

وحید آنلاین . آرشیو وبلاگ وحیدمی دات آی آر . شرکت بیان. vahidmy.blog.ir

MOVNTDQ

MOVNTDQ 

Usage: MOVNTDQ  dest,src                             Modifies flags: None

Moves the double quadword in the 'src' to the 'dest' using a non-temporal hint to prevent caching of the data during the write to memory.

Move Double Quadword Non Temporal



MOVNTDQ m128,xmm              ; 66 0F E7 /r     [WILLAMETTE,SSE2]


MOVNTDQ moves the double quadword from the XMM source register to the destination memory location, using a non-temporal hint. This store instruction minimizes cache pollution.


The 'src' operand is an XMM register, which is assumed to contain integer data (packed bytes, words, doublewords,or quadwords). The 'dest'  operand is a 128-bit memory location.


EXAMPLE:

movntdq Label xmm2 

MOVMSKPS

MOVMSKPS 

Usage: MOVMSKPS  dest,src                             Modifies flags: None

Extracts the sign bits from the packed single-precision floating-point values in the 'src' formats them into a 4-bit mask, and stores the mask in the 'dest'.

Extract Packed Single-Precision FP Sign Mask



MOVMSKPS reg32,xmm              ; 0F 50 /r      [KATMAI,SSE]


MOVMSKPS inserts a 4-bit mask in r32, formed of the most significant bits of each single-precision FP number of the source operand.


The 'src'  is an XMM register, and the 'dest'  operand is a general-purpose register. The mask is stored in the 4 low-order bits of the destination operand.


EXAMPLE:

movmskps eax xmm2 

MOVMSKPD

MOVMSKPD 

Usage: MOVMSKPD  dest,src                             Modifies flags: None

Extracts the sign bits from the packed double-precision floating-point values in the 'src' formats them into a 2-bit mask, and stores the mask in the 'dest'.

Extract Packed Double-Precision FP Sign Mask



MOVMSKPD reg32,xmm              ; 66 0F 50 /r   [WILLAMETTE,SSE2]


MOVMSKPD inserts a 2-bit mask in r32, formed of the most significant bits of each double-precision FP number of the source operand.


The 'src' operand is an XMM register, and the 'dest'  operand is a general-purpose register. The mask is stored in the 2 low-order bits of the 'dest' operand.


EXAMPLE:

movmskpd  eax xmm2 

 

MOVLPS

MOVLPS 

Usage: MOVLPS  dest,src                             Modifies flags: None

Moves two packed single-precision floating-point values from the 'src'  and the 'dest' operand.

Move Low Packed Single-Precision FP


MOVLPS xmm,m64                ; OF 12 /r        [KATMAI,SSE]

MOVLPS m64,xmm                ; OF 13 /r        [KATMAI,SSE]


MOVLPS moves two packed single-precision FP values between the source and destination operands. One of the operands is a 64-bit memory location, the other is the low quadword of an XMM register.


The operation of this instruction is:

   mem(0-63)   := xmm(0-63);

                       or

   xmm(0-63)   := mem(0-63);

   xmm(64-127) remains unchanged.

The 'src' and 'dest'  operands can be an XMM register or a 64-bit memory location. This instruction allows two single-precision floating-point values to be moved to and from the low quadword of an XMM register and memory. It cannot be used for register to register or memory to memory moves. When the 'dest' operand is an XMM register, the high quadword of the register remains unchanged.


EXAMPLE:

movlps xmm1 Label 


MOVLPD

MOVLPD 

Usage: MOVLPD  dest,src                             Modifies flags: None

Moves a double-precision floating-point value from the source operand to the 'dest'. 

Move Low Packed Double-Precision FP


MOVLPD xmm,m64                ; 66 OF 12 /r     [WILLAMETTE,SSE2]

MOVLPD m64,xmm                ; 66 OF 13 /r     [WILLAMETTE,SSE2]


MOVLPD moves a double-precision FP value between the source and destination operands. One of the operands is a 64-bit memory location, the other is the low quadword of an XMM register.


The operation of this instruction is:

   mem(0-63)   := xmm(0-63);

                       or

   xmm(0-63)   := mem(0-63);

   xmm(64-127) remains unchanged.

The 'src' and 'dest'  operands can be an XMM register or a 64-bit memory location. This instruction allows a double-precision floating-point value to be moved to and from the low quadword of an XMM register and memory. It cannot be used for register to register or memory to memory moves. When the 'dest'  operand is an XMM register, the high quadword of the register remains unchanged.


EXAMPLE:

movlpd xmm1 Label 

MOVLHPS

MOVLHPS 

Usage: MOVLHPS  dest,src                             Modifies flags: None

Moves two packed single-precision floating-point values from the low quadword of the 'src' to the high quadword of the 'dest'. The low quadword of the destination operand is left unchanged.

Move Packed Single-Precision FP Low to High


MOVLHPS xmm1,xmm2             ; OF 16 /r         [KATMAI,SSE]


MOVLHPS moves the two packed single-precision FP values from the low quadword of the source register xmm2 to the high quadword of the destination register, xmm2. The low quadword of xmm1 is left unchanged.


The operation of this instruction is:

   dst[0-63]   remains unchanged;

   dst[64-127] := src[0-63].


EXAMPLE:

movlhps xmm1 xmm2 


MOVHPS

MOVHPS 

Usage: MOVHPS  dest,src                             Modifies flags: None

Moves two packed single-precision floating-point values from the 'src' to the 'dest' operand.

Move High Packed Single-Precision FP



MOVHPS xmm,m64               ; 0F 16 /r         [KATMAI,SSE]

MOVHPS m64,xmm               ; 0F 17 /r         [KATMAI,SSE]


MOVHPS moves two packed single-precision FP values between the source and destination operands. One of the operands is a 64-bit memory location, the other is the high quadword of an XMM register.


The operation of this instruction is:

   mem[0-63]   := xmm[64-127];

or

   xmm[0-63]   remains unchanged;

   xmm[64-127] := mem[0-63].

The src' and 'dest'  operands can be an XMM register or a 64-bit memory location. This instruction allows two single-precision floating-point values to be moved to and from the high quadword of an XMM register and memory. It cannot be used for register to register or memory to memory moves. When the 'dest' operand is an XMM register, the low quadword of the register remains unchanged.


EXAMPLE:

movhps xmm1 Label 

MOVHPD

MOVHPD 

Usage: MOVHPD  dest,src                             Modifies flags: None

Moves a double-precision floating-point value from the 'src'  (second operand) to the 'dest' (first operand). The 'src' and 'dest'  operands can be an XMM register or a 64-bit memory location.

Move High Packed Double-Precision FP



MOVHPD xmm,m64               ; 66 OF 16 /r      [WILLAMETTE,SSE2]

MOVHPD m64,xmm               ; 66 OF 17 /r      [WILLAMETTE,SSE2]


MOVHPD moves a double-precision FP value between the source and destination operands. One of the operands is a 64-bit memory location, the other is the high quadword of an XMM register.


The operation of this instruction is:


   mem[0-63]   := xmm[64-127];


or


   xmm[0-63]   remains unchanged;

   xmm[64-127] := mem[0-63].

This instruction allows a double-precision floating-point value to be moved to and from the low quadword of an XMM register and memory. It cannot be used for register to register or memory to memory moves. When the 'dest'  operand is an XMM register, the high quadword of the register remains unchanged.


EXAMPLE:

movhpd xmm1 Label 

MOVHLPS

MOVHLPS 

Usage: MOVHLPS  dest,src                             Modifies flags: None

Moves two packed single-precision floating-point values from the low quadword of the 'src' to the high quadword of the 'dest'. The low quadword of the 'dest'  operand is left unchanged.

Move Packed Single-Precision FP High to Low


MOVHLPS xmm1,xmm2             ; OF 12 /r        [KATMAI,SSE]


MOVHLPS moves the two packed single-precision FP values from the high quadword of the source register xmm2 to the low quadword of the destination register, xmm2. The upper quadword of xmm1 is left unchanged.


The operation of this instruction is:

   dst[0-63]   := src[64-127],

   dst[64-127] remains unchanged.


EXAMPLE:

movhlps xmm1 xmm2


MOVDQU

MOVDQU 

Usage: MOVDQU  dest,src                             Modifies flags: None

Moves a double quadword from the 'src' to the 'dest' operand. This instruction can be used to load an XMM register from a 128-bit memory location, to store the contents of an XMM register into a 128-bit memory location, or to move data between two XMM registers.

Move Unaligned Double Quadword


MOVDQU xmm1,xmm2/m128         ; F3 OF 6F /r     [WILLAMETTE,SSE2]

MOVDQU xmm1/m128,xmm2         ; F3 OF 7F /r     [WILLAMETTE,SSE2]


MOVDQU moves a double quadword from the source operand to the destination operand. When the source or destination operand is a memory location, the memory may be unaligned.


When the 'src' or 'dest'  is a memory operand, it may be unaligned on a 16-byte boundary without causing a general-protection exception (#GP) to be generated.


To move a double quadword to or from known aligned memory locations, use the MOVDQA instruction.


EXAMPLE:

movdqu  Label xmm1