I'm looking Intel datasheet: Intel® 64 and IA-32 Architectures Software Developer’s Manual and I can't find the difference between
- MOVDQA: Move Aligned Double Quadword
- MOVAPS: Move Aligned Packed Single-Precision
In Intel datasheet I can find for both instructions:
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.
The only difference is:
To move a double quadword to or from unaligned memory locations, use the MOVDQU instruction.
and
To move packed single-precision floating-point values to or from unaligned memory locations, use the MOVUPS instruction.
But I can't find the reason why two different instructions?
So can anybody explain the difference?