x64 Assembly Tutorial 48: SSE Data Movement and Data Alignment @WhatsACreel
x64 Assembly Tutorial 48: SSE Data Movement and Data Alignment  @WhatsACreel
Uploaded March 2012 | Updated September 2026, 2 weeks ago
In this tutorial we're going to look at 10 of the basic SSE data movement instructions. There's many more but these 10 will allow us to move pretty much whatever we want with SSE registers. Most of this tutorial is spent on looking at a very interesting topic, data alignment. Some of the SSE data movement instructions require the memory operands to be aligned (alignment never affects registers since registers have no address!). It's very important to realise that the data and code segments are the same to the CPU, you can align instructions in the code segment as easily as definitions in the data segment. Try placing "align (16)" just prior to the label at the top of a loop and you might get a free performance boost!

We also look a little alignment in the code segment. Basically you want to use the Aligned SSE instructions to move data from and to memory if you can since they are quicker. There's SSE instructions for moving integers, single precision floats (real4) and double precision floats (real8).

There's only a very small difference between moving 4 real4's or 2 real8's into or out of SSE registers but it's good to maintain the correct instructions as per your data size since there's a small performance penalty for using a register against what the CPU expects.
x64 Assembly Tutorial 48: SSE Data Movement and Data AlignmentJava Tutorial for Beginners 1: Installing Eclipse Hello WorldTop 10 Craziest Assembly Language InstructionsC# Windows 8 Tutorial 5: Tokenize MethodBit Hacks from Beginner to Advanced - 11 Amazing Bit Twiddling TechniquesDirect2D Tutorial 7: Structure of a GameWhy is Radix Sort so Fast? Part 1 Why are Comparison Sorts so Slow?What is the Halting Problem?Learn Python Programming 5: Functionsx64 Assembly Tutorial 59: 128bpp Photo Editor Frontend ImogenMatrix Multiplication in C++ (for Neural Networks)Modern x64 Assembly 7: Boolean (Bool) Logical Instructions in x86 x64 8086 ASM
Creel |

x64 Assembly Tutorial 48: SSE Data Movement and Data Alignment

SHARE TO X SHARE TO REDDIT SHARE TO FACEBOOK WALLPAPER