Intel 253666-024US Computer Hardware User Manual


 
3-682 Vol. 2A MOVSS—Move Scalar Single-Precision Floating-Point Values
INSTRUCTION SET REFERENCE, A-M
MOVSS—Move Scalar Single-Precision Floating-Point Values
Description
Moves a scalar single-precision floating-point value from the source operand (second
operand) to the destination operand (first operand). The source and destination
operands can be XMM registers or 32-bit memory locations. This instruction can be
used to move a single-precision floating-point value to and from the low doubleword
of an XMM register and a 32-bit memory location, or to move a single-precision
floating-point value between the low doublewords of two XMM registers. The instruc-
tion cannot be used to transfer data between memory locations.
When the source and destination operands are XMM registers, the three high-order
doublewords of the destination operand remain unchanged. When the source
operand is a memory location and destination operand is an XMM registers, the three
high-order doublewords of the destination operand are cleared to all 0s.
In 64-bit mode, use of the REX.R prefix permits this instruction to access additional
registers (XMM8-XMM15).
Operation
MOVSS instruction when source and destination operands are XMM registers:
DEST[31:0] SRC[31:0];
(* DEST[127:32] remains unchanged *)
MOVSS instruction when source operand is XMM register and destination operand is
memory location:
DEST SRC[31:0];
MOVSS instruction when source operand is memory location and destination operand is
XMM register:
DEST[31:0] SRC;
DEST[127:32] 000000000000000000000000H;
Intel C/C++ Compiler Intrinsic Equivalent
MOVSS __m128 _mm_load_ss(float * p)
Opcode Instruction 64-Bit
Mode
Compat/
Leg Mode
Description
F3 0F 10 /r MOVSS xmm1,
xmm2/m32
Valid Valid Move scalar single-precision
floating-point value from
xmm2/m32 to xmm1 register.
F3 0F 11 /r MOVSS xmm2/m32,
xmm
Valid Valid Move scalar single-precision
floating-point value from xmm1
register to xmm2/m32.