Streaming SIMD Extensions
Aus Lowlevel
Die Streaming SIMD Extensions (oder kurz SSE genannt), ist ein eine Befehlserweiterung für die x86-Architektur, die Intel mit dem Pentium III eingeführt hat. SSE stellt neue 128-Bit-Register zur Verfügung, welche oft zum Verrechnen von vierdimensionalen Vektoren genutzt werden, wohingegen MMX die vorhandenen FPU-Register nutzt (seit SSE2 können allerdings alle MMX-Befehle auch auf den SSE-Registern ausgeführt werden). Wie auch MMX folgt SSE dem SIMD-Prinzip: Single Instruction, Multiple Data.
Inhaltsverzeichnis
Unterstützung feststellen
Register
32-Bit
Im 32-Bit-Modus stehen 8 Register (xmm0 bis xmm7) zur Verfügung.
64-Bit
Im 64-Bit-Modus gibt es 8 zusätzliche Register (xmm8 bis xmm15).
Bytes | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
XMM? | |||||||||||||||
? = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 |
Befehle
Arithmetische Befehle
Hinweis: Das zuerst angegebene Register enthält das Ergebnis.
Befehl | Funktion | Beispiel |
---|---|---|
ADDPS | Addiert die Komponenten von zwei Registern | <asm>ADDPS xmm0, xmm1</asm> |
SUBPS | Subtrahiert die Komponenten von zwei Registern | <asm>SUBPS xmm0, xmm1</asm> |
MULPS | Multipliziert die Komponenten von zwei Registern | <asm>MULPS xmm0, xmm1</asm> |
DIVPS | Dividiert die Komponenten von zwei Registern | <asm>DIVPS xmm0, xmm1</asm> |
ADDSS | Addiert Skalar zu Komponenten eines Registers | |
SUBSS | Subtrahiert Skalar von den Komponenten eines Registers | |
MULSS | Multipliziert die Komponenten eines Registers mit Skalar | |
DIVSS | Dividiert die Komponenten eines Registers durch Skalar |