Startseite › x64-Assembler-Referenz › Mnemonik-Familienübersichten Hilfe zum PBXB64-Compiler

SSE/SSE2/SSE3/SSSE3/SSE4-Mnemonik

Alle Anweisungen der SSE-Familie arbeiten mit 128-Bit-XMM-Registern. PBXB64 unterstützt SSE bis SSE4.2 mit vollständiger Intel-Syntax.

Kategorie: Mnemonik-Familienübersichten

Beschreibung

Alle Anweisungen der SSE-Familie arbeiten mit 128-Bit-XMM-Registern. PBXB64 unterstützt SSE bis SSE4.2 mit vollständiger Intel-Syntax.

SSE – Streaming von SIMD-Erweiterungen

Original SSE (KNI/Katmai neue Anleitung). Gleitkommaoperationen mit einfacher Genauigkeit auf XMM-Registern.

SSE-Datenbewegung

GedächtnisstützeBeschreibungOperanden
MOVAPSAusgerichtetes, gepacktes Einzelstück verschieben (16-Byte-ausgerichtet)xmm, xmm/mem128 / mem128, xmm
MOVUPSMove unaligned packed singlexmm, xmm/mem128 / mem128, xmm
MOVSSMove scalar singlexmm, xmm/mem32 / mem32, xmm
MOVLPSNiedrig gepackte Single verschieben (untere 64 Bit)xmm, mem64 / mem64, xmm
MOVHPSHochgepackte Single verschieben (obere 64 Bit)xmm, mem64 / mem64, xmm
MOVLHPSBewegen Sie sich von unten nach oben einzelnxmm, xmm
MOVHLPSBewegen Sie sich einzeln von oben nach untenxmm, xmm
MOVMSKPSVorzeichenmaske nach GPR verschieben (4 Vorzeichenbits → GPR)reg, xmm

SSE-gepackte Arithmetik (einfache Genauigkeit)

GedächtnisstützeBeschreibungOperanden
ADDPSFügen Sie verpackte Single hinzuxmm, xmm/mem128
ADDSSSkalare Single hinzufügenxmm, xmm/mem32
SUBPSGepackte Single subtrahierenxmm, xmm/mem128
SUBSSSubtrahieren Sie den Skalar einzelnxmm, xmm/mem32
MULPSMehrfach gepackte Singlexmm, xmm/mem128
MULSSSkalar-Single multiplizierenxmm, xmm/mem32
DIVPSTeilweise einzeln verpacktxmm, xmm/mem128
DIVSSTeilen Sie den Skalar einfachxmm, xmm/mem32
SQRTPSQuadratwurzelgepackte Singlexmm, xmm/mem128
SQRTSSQuadratwurzel-Skalar-Singlexmm, xmm/mem32
RCPPSReziprok gepacktes Single (ungefähr)xmm, xmm/mem128
RCPSSReziproker Skalar Single (ungefähr)xmm, xmm/mem32
RSQRTPSReziproke Quadratwurzel gepackte Einzelzahl (ungefähr)xmm, xmm/mem128
RSQRTSSReziproker Quadratwurzelskalar einfach (ungefähr)xmm, xmm/mem32
MAXPSMaximal gepacktes Einzelstückxmm, xmm/mem128
MAXSSMaximaler Skalar-Singlexmm, xmm/mem32
MINPSMindestens einzeln verpacktxmm, xmm/mem128
MINSSMinimaler Skalar-Singlexmm, xmm/mem32

SSE Logisch / Vergleich

GedächtnisstützeBeschreibungOperanden
ANDPSBitwise AND of packed singlesxmm, xmm/mem128
ANDNPSBitwise AND-NOT of packed singlesxmm, xmm/mem128
ORPSBitwise OR of packed singlesxmm, xmm/mem128
XORPSBitwise XOR of packed singlesxmm, xmm/mem128
CMPPSVergleichen Sie gepackte Singles (imm8-Prädikat)xmm, xmm/mem128, imm8
CMPSSSkalare Single vergleichen (imm8-Prädikat)xmm, xmm/mem32, imm8
COMISSVergleichen Sie geordnete Skalar-Singles (Setzt Flags)xmm, xmm/mem32
UCOMISSUngeordnete Skalar-Single vergleichen (setzt Flags)xmm, xmm/mem32

CMPPS/CMPSS-Direktprädikate:

ImmPrädikatBeschreibung
0EQGleich
1LTWeniger als
2LEKleiner oder gleich
3UNORDUngeordnet
4NEQUngleich
5NLTNicht weniger als
6NLENicht kleiner oder gleich
7ORDBestellt

SSE Mischen/Auspacken

GedächtnisstützeBeschreibungOperanden
SHUFPSShuffle packed singlexmm, xmm/mem128, imm8
UNPCKHPSUnpack high packed singlexmm, xmm/mem128
UNPCKLPSUnpack low packed singlexmm, xmm/mem128

SSE-Steuerung

GedächtnisstützeBeschreibung
STMXCSRMXCSR-Register speichern (Steuerung/Status)
LDMXCSRMXCSR-Register laden
FXRSTORStellen Sie den x87- und SSE-Status wieder her
FXSAVESpeichern Sie den x87- und SSE-Status

SSE2 – Streaming von SIMD-Erweiterungen 2

Fügt Gleitkomma- und Ganzzahl-SIMD-Operationen mit doppelter Genauigkeit hinzu (MMX-ähnlich bei XMM).

SSE2 Arithmetik mit doppelter Genauigkeit

GedächtnisstützeBeschreibungOperanden
ADDPDFügen Sie das verpackte Doppel hinzuxmm, xmm/mem128
ADDSDSkalardoppel hinzufügenxmm, xmm/mem64
SUBPDSubtrahieren Sie das gepackte Doppelxmm, xmm/mem128
SUBSDSubtrahiere das Skalardoppelxmm, xmm/mem64
MULPDMehrfach gepacktes Doppeltesxmm, xmm/mem128
MULSDSkalar mit dem Doppelten multiplizierenxmm, xmm/mem64
DIVPDDoppelt verpackt teilenxmm, xmm/mem128
DIVSDTeilen Sie den Skalar durch das Doppeltexmm, xmm/mem64
SQRTPSQuadratwurzel gepackt (PS-Variante in SSE)xmm, xmm/mem128
SQRTPDQuadratwurzel doppelt gepacktxmm, xmm/mem128
SQRTSDQuadratwurzel-Skalar-Doublexmm, xmm/mem64
MAXPDMaximal doppelt bepacktxmm, xmm/mem128
MAXSDMaximales Skalar-Doublexmm, xmm/mem64
MINPDMindestens doppelt verpacktxmm, xmm/mem128
MINSDMinimales Skalardoppelxmm, xmm/mem64

SSE2-Datenbewegung

GedächtnisstützeBeschreibungOperanden
MOVAPDMove aligned packed doublexmm, xmm/mem128 / mem128, xmm
MOVUPDMove unaligned packed doublexmm, xmm/mem128 / mem128, xmm
MOVSDMove scalar doublexmm, xmm/mem64 / mem64, xmm
MOVLPDMove low packed doublexmm, mem64 / mem64, xmm
MOVHPDMove high packed doublexmm, mem64 / mem64, xmm
MOVMSKPDVorzeichenmaske nach GPR verschieben (2 Bits)reg, xmm
MOVDQ2QVerschieben Sie XMM in das MMX-Register (niedriges Quadwort).mm, xmm
MOVQ2DQMMX in das XMM-Register verschieben (niedriges Quadword)xmm, mm

SSE2-Ganzzahloperationen (XMM)

GedächtnisstützeBeschreibungOperanden
MOVDMove doubleword to/from XMMxmm, reg32/mem32 / reg32, xmm
MOVQMove quadword to/from XMMxmm, reg64/mem64 / reg64/rm, xmm
MOVDQAAusgerichtetes Doppelquadwort verschieben (16-Byte-ausgerichtet)xmm, xmm/mem128 / mem128, xmm
MOVDQUMove unaligned double quadwordxmm, xmm/mem128 / mem128, xmm
PADDBFügen Sie gepackte Byte-Ganzzahlen hinzuxmm, xmm/mem128
PADDWFügen Sie gepackte Wort-Ganzzahlen hinzuxmm, xmm/mem128
PADDDFügen Sie gepackte Doppelwort-Ganzzahlen hinzuxmm, xmm/mem128
PADDQFügen Sie gepackte Quadword-Ganzzahlen hinzuxmm, xmm/mem128
PSUBBSubtrahieren Sie gepackte Byte-Ganzzahlenxmm, xmm/mem128
PSUBWSubtrahieren Sie ganze Zahlen gepackter Wörterxmm, xmm/mem128
PSUBDSubtrahieren Sie gepackte Doppelwort-Ganzzahlenxmm, xmm/mem128
PSUBQSubtrahieren Sie gepackte Quadword-Ganzzahlenxmm, xmm/mem128
PMULLWMultiplizieren Sie gepackte Wort-Ganzzahlen (niedrige 16 Bits)xmm, xmm/mem128
PMULHWMultiplizieren Sie gepackte Wort-Ganzzahlen (hohe 16 Bits)xmm, xmm/mem128
PMULHUWMultiplizieren Sie gepackte Wort-Ganzzahlen (hohe 16 Bit, ohne Vorzeichen)xmm, xmm/mem128
PMULUDQMultiplizieren Sie ein vorzeichenloses Doppelwort mit einem Quadwortxmm, xmm/mem128
PMADDWDMultiplizieren Sie das gepackte Wort und addieren Sie es zum Doppelwortxmm, xmm/mem128
PSADBWSum of absolute differencesxmm, xmm/mem128

SSE2 Packed Integer Logical

GedächtnisstützeBeschreibungOperanden
PANDBitweises UND von gepackten ganzen Zahlenxmm, xmm/mem128
PANDNBitweises UND-NICHT von gepackten ganzen Zahlenxmm, xmm/mem128
PORBitweises ODER gepackter Ganzzahlenxmm, xmm/mem128
PXORBitweises XOR gepackter Ganzzahlenxmm, xmm/mem128

SSE2 Packed Shift

GedächtnisstützeBeschreibungOperanden
PSLLWLogisch gepacktes Wort nach links verschiebenxmm, imm8 / xmm
PSLLDLogisch gepacktes Doppelwort nach links verschiebenxmm, imm8 / xmm
PSLLQVerschieben Sie das logisch gepackte Quadwort nach linksxmm, imm8 / xmm
PSRLWVerschieben Sie das logisch gepackte Wort nach rechtsxmm, imm8 / xmm
PSRLDVerschieben Sie das logisch gepackte Doppelwort nach rechtsxmm, imm8 / xmm
PSRLQVerschieben Sie das logisch gepackte Quadwort nach rechtsxmm, imm8 / xmm
PSRAWVerschieben Sie das arithmetisch gepackte Wort nach rechtsxmm, imm8 / xmm
PSRADNach rechts verschieben arithmetisch gepacktes Doppelwortxmm, imm8 / xmm

SSE2-Vergleich

GedächtnisstützeBeschreibungOperanden
CMPPDVergleichen Sie gepacktes Doppel (imm8-Prädikat)xmm, xmm/mem128, imm8
CMPSDSkalar-Double vergleichen (imm8-Prädikat)xmm, xmm/mem64, imm8
COMISDVergleichen Sie das geordnete Skalar-Double (Setzt Flags)xmm, xmm/mem64
UCOMISDUngeordnetes Skalar-Double vergleichen (setzt Flags)xmm, xmm/mem64
PCMPEQBVergleichen Sie gepackte Bytes auf Gleichheitxmm, xmm/mem128
PCMPEQWVergleichen Sie gepackte Wörter auf Gleichheitxmm, xmm/mem128
PCMPEQDVergleichen Sie gepackte Doppelwörter auf Gleichheitxmm, xmm/mem128
PCMPGTBVergleichen Sie gepackte Bytes auf größer als (mit Vorzeichen)xmm, xmm/mem128
PCMPGTWVergleichen Sie gepackte Wörter für größer alsxmm, xmm/mem128
PCMPGTDVergleichen Sie gepackte Doppelwörter für größer alsxmm, xmm/mem128

SSE2-Konvertierungsanweisungen

GedächtnisstützeBeschreibungOperanden
CVTPD2PSWandeln Sie gepacktes Doppel in gepacktes Einzel umxmm, xmm/mem128
CVTPS2PDWandeln Sie gepacktes Einzel in gepacktes Doppel umxmm, xmm/mem64
CVTSD2SSWandeln Sie Skalar-Doppel in Skalar-Einfach umxmm, xmm/mem64
CVTSS2SDKonvertieren Sie den einfachen Skalar in den doppelten Skalarxmm, xmm/mem32
CVTDQ2PDKonvertieren Sie gepacktes Doppelwort in gepacktes Doppelwortxmm, xmm/mem64
CVTPD2DQKonvertieren Sie gepacktes Doppel in gepacktes Doppelwortxmm, xmm/mem128
CVTDQ2PSKonvertieren Sie ein gepacktes Doppelwort in ein gepacktes Einzelwortxmm, xmm/mem128
CVTPS2DQKonvertieren Sie ein gepacktes Einzelwort in ein gepacktes Doppelwortxmm, xmm/mem128
CVTTPD2DQGepacktes Doppel zu gepacktem Doppelwort abschneidenxmm, xmm/mem128
CVTTPS2DQGepacktes Einzelwort in gepacktes Doppelwort kürzenxmm, xmm/mem128
CVTTSD2SITruncate scalar double to integerreg32/64, xmm/mem64
CVTTSI2SDGanzzahl auf Skalardoppel kürzenxmm, reg32/64/mem32
CVTSD2SIKonvertieren Sie das Skalar-Double in eine ganze Zahl (rund)reg32/64, xmm/mem64
CVTSI2SDConvert integer to scalar doublexmm, reg32/64/mem32
CVTSS2SIKonvertieren Sie einen einzelnen Skalar in eine ganze Zahl (rund)reg32/64, xmm/mem32
CVTSI2SSConvert integer to scalar singlexmm, reg32/64/mem32
CVTTSS2SITruncate scalar single to integerreg32/64, xmm/mem32

SSE2 Mischen / Auspacken / Packen

GedächtnisstützeBeschreibungOperanden
PACKSSWBVorzeichenbehaftete Wörter in Bytes packen (gesättigt)xmm, xmm/mem128
PACKSSDWVorzeichenbehaftete Doppelwörter zu Wörtern packen (gesättigt)xmm, xmm/mem128
PACKUSWBVorzeichenlose Wörter in Bytes packen (unsigned sat)xmm, xmm/mem128
PUNPCKHBWEntpacken Sie High-Bytesxmm, xmm/mem128
PUNPCKHWDPacken Sie hohe Wörter ausxmm, xmm/mem128
PUNPCKHDQHohe Doppelwörter auspackenxmm, xmm/mem128
PUNPCKHQDQEntpacken Sie hohe Quadwordsxmm, xmm/mem128
PUNPCKLBWLow-Bytes entpackenxmm, xmm/mem128
PUNPCKLWDPacken Sie niedrige Wörter ausxmm, xmm/mem128
PUNPCKLDQEntpacken Sie niedrige Doppelwörterxmm, xmm/mem128
PUNPCKLQDQEntpacken Sie niedrige Quadwordsxmm, xmm/mem128
SHUFPDShuffle packed doublexmm, xmm/mem128, imm8
PSHUFDMischen Sie gepackte Doppelwörterxmm, xmm/mem128, imm8
PSHUFHWMischen Sie gepackte hohe Wörterxmm, xmm/mem128, imm8
PSHUFLWMischen Sie gepackte niedrige Wörterxmm, xmm/mem128, imm8
PSHUFBGepackte Bytes mischen (SSSE3)xmm, xmm/mem128

SSE2-Cache-Steuerung

GedächtnisstützeBeschreibungOperanden
MASKMOVDQUMaskierter Speicher gepackter Ganzzahlenxmm, xmm
MOVNTDQNichtzeitlicher Speicher gepackter Ganzzahlenmem128, xmm
MOVNTINicht-temporäre Speicherung von Ganzzahlen (Doppelwort/Vierwort)mem32/64, reg
MOVNTPDNichtzeitlicher Speicher von gepacktem Doppelmem128, xmm
PAUSESpin-Loop-Hinweis (verbessert Leistung/Power)keiner

SSE3 – Streaming von SIMD-Erweiterungen 3

GedächtnisstützeBeschreibungOperanden
ADDSUBPDGepacktes Doppel addieren/subtrahieren (alternierend)xmm, xmm/mem128
ADDSUBPSGepackte Single addieren/subtrahieren (alternierend)xmm, xmm/mem128
HADDPDHorizontal add packed doublexmm, xmm/mem128
HADDPSHorizontal add packed singlexmm, xmm/mem128
HSUBPDHorizontal subtract packed doublexmm, xmm/mem128
HSUBPSHorizontal subtract packed singlexmm, xmm/mem128
MOVDDUPVerschieben und duplizieren (eines auf beide Hälften von XMM)xmm, xmm/mem64
MOVSHDUPMove and duplicate high singlesxmm, xmm/mem128
MOVSLDUPMove and duplicate low singlesxmm, xmm/mem128
LDDQULaden Sie nicht ausgerichtete 128-Bit-Dateien (vermeidet die Aufteilung der Cache-Zeile)xmm, mem128
FISTTPFPU: Ganzzahl abschneiden und speichern (x87-Stapel platzen lassen)mem16/32/64

SSSE3 – Ergänzendes SSE3

GedächtnisstützeBeschreibungOperanden
PSIGNBVorzeichen gepackter Bytes (negativ oder null)xmm, xmm/mem128
PSIGNWZeichen gepackter Wörterxmm, xmm/mem128
PSIGNDZeichen für gepackte Doppelwörterxmm, xmm/mem128
PSHUFBGepackte Shuffle-Bytes (Permutationstabelle)xmm, xmm/mem128
PMULHRSWVerpackt mehrfach hoch mit Rundung und Skalaxmm, xmm/mem128
PABSBGepackter absoluter Bytewertxmm, xmm/mem128
PABSWVerpackter absoluter Wortwertxmm, xmm/mem128
PABSDGepackter Absolutwert von Doppelwörternxmm, xmm/mem128
PHADDSWGepackte horizontale Wörter mit Sättigung hinzufügenxmm, xmm/mem128
PHSUBWGepackte horizontale Subtraktionswörterxmm, xmm/mem128
PHSUBDGepackte horizontale Subtraktionsdoppelwörterxmm, xmm/mem128
PHADDDGepackte horizontale Doppelwörter hinzufügenxmm, xmm/mem128
PHADDWGepackte horizontale Wörter hinzufügenxmm, xmm/mem128
PMADDUBSWMultiply unsigned bytes, add adjacent, saturatexmm, xmm/mem128
PALIGNRGepackt rechts ausrichten (verketten und verschieben)xmm, xmm/mem128, imm8
PHSUBSWGepackte horizontale subtrahierte vorzeichenbehaftete Wörter mit Sättigungxmm, xmm/mem128

SSE4.1 – SSE4

GedächtnisstützeBeschreibungOperanden
PMULLDMehrfach gepackte vorzeichenbehaftete Doppelwörter (niedrige 32 Bit)xmm, xmm/mem128
PMULDQMultiplizieren Sie gepackte vorzeichenbehaftete Doppelwörter zu Quadwörternxmm, xmm/mem128
PCMPEQQVergleichen Sie gepackte Quadwords auf Gleichheitxmm, xmm/mem128
PCMPGTQVergleichen Sie gepackte Quadwords für größer als (vorzeichenbehaftet)xmm, xmm/mem128
PMAXSBMaximale Anzahl gepackter signierter Bytesxmm, xmm/mem128
PMAXSWMaximal gepackte vorzeichenbehaftete Wörterxmm, xmm/mem128
PMAXSDMaximal gepackte signierte Doppelwörterxmm, xmm/mem128
PMAXUBMaximal gepackte Bytes ohne Vorzeichenxmm, xmm/mem128
PMAXUWMaximal gepackte Wörter ohne Vorzeichenxmm, xmm/mem128
PMAXUDMaximal gepackte vorzeichenlose Doppelwörterxmm, xmm/mem128
PMINSBMinimum an gepackten signierten Bytesxmm, xmm/mem128
PMINSWMindestens gepackte vorzeichenbehaftete Wörterxmm, xmm/mem128
PMINSDMindestens gepackte signierte Doppelwörterxmm, xmm/mem128
PMINUBMinimum an gepackten vorzeichenlosen Bytesxmm, xmm/mem128
PMINUWMinimum an gepackten Wörtern ohne Vorzeichenxmm, xmm/mem128
PMINUDMindestens gepackte, vorzeichenlose Doppelwörterxmm, xmm/mem128
PINSRBByte einfügen (aus GPR oder Speicher)xmm, reg/mem32, imm8
PINSRDDoppelwort einfügenxmm, reg/mem32, imm8
PINSRQQuadword einfügenxmm, reg/mem64, imm8
PEXTRBByte in GPR oder Speicher extrahierenreg/mem8, xmm, imm8
PEXTRDDoppelwort extrahierenreg/mem32, xmm, imm8
PEXTRQQuadword extrahierenreg/mem64, xmm, imm8
INSERTPSGepackte Single einfügen (aus der Quelle zusammenführen)xmm, xmm/mem32, imm8
EXTRACTPSExtrahieren Sie gepackte Singles in GPR/Speicherreg/mem32, xmm, imm8
PHMINPOSUWGepackte horizontale Min. vorzeichenloser Wörter, Speicherpositionxmm, xmm/mem128
PMOVSXBWBewegen Sie sich mit Vorzeichenerweiterung, Bytes zu Wörternxmm, xmm/mem64
PMOVSXBDVerschieben Sie mit Vorzeichenerweiterung Bytes in Doppelwörterxmm, xmm/mem32
PMOVSXBQVerschieben Sie mit Vorzeichenerweiterung Bytes in Quadwordsxmm, xmm/mem16
PMOVSXWDBewegen Sie sich mit Zeichenerweiterung, Wörter zu Doppelwörternxmm, xmm/mem64
PMOVSXWQVerschieben Sie Wörter mit Zeichenerweiterung in Quadwörterxmm, xmm/mem32
PMOVSXDQBewegen Sie sich mit Vorzeichenerweiterung, Doppelwörter zu Quadwörternxmm, xmm/mem64
PMOVZXBWVerschieben Sie mit Null-Erweiterung, Bytes zu Wörternxmm, xmm/mem64
PMOVZXBDVerschieben Sie Bytes mit der Erweiterung Null in Doppelwörterxmm, xmm/mem32
PMOVZXBQVerschieben Sie Bytes mit der Erweiterung Null in Quadwordsxmm, xmm/mem16
PMOVZXWDVerschieben Sie Wörter ohne Erweiterung in Doppelwörterxmm, xmm/mem64
PMOVZXWQVerschieben Sie Wörter ohne Erweiterung in Quadwörterxmm, xmm/mem32
PMOVZXDQVerschieben Sie Doppelwörter mit Nullerweiterung in Quadwörterxmm, xmm/mem64
PBLENDVBVariable Mischung gepackter Bytes (nach XMM0-Maske)xmm, xmm/mem128
PBLENDWMischung aus gepackten Wörtern (Sofortmaske)xmm, xmm/mem128, imm8
BLENDPDMischung verpackt doppelt (sofortige Maske)xmm, xmm/mem128, imm8
BLENDPSBlend verpackte Single (Sofortmaske)xmm, xmm/mem128, imm8
BLENDVPDVariable Mischung doppelt gepackt (durch XMM0-Maske)xmm, xmm/mem128
BLENDVPSVariable Mischung gepackt einzeln (nach XMM0-Maske)xmm, xmm/mem128
DPPSSkalarprodukt der gepackten Einzelmengexmm, xmm/mem128, imm8
DPPDSkalarprodukt des gepackten Doppelsxmm, xmm/mem128, imm8
MPSADBWMehrfachsumme absoluter Differenzen (8-Bit)xmm, xmm/mem128, imm8
ROUNDPSRund verpackte Singlexmm, xmm/mem128, imm8
ROUNDSSRunde Skalar-Singlexmm, xmm/mem32, imm8
ROUNDPDRund verpackt, doppeltxmm, xmm/mem128, imm8
ROUNDSDRundes Skalardoppelxmm, xmm/mem64, imm8
PTESTLogischer Vergleich gepackter Ganzzahlen (setzt ZF/CF)xmm, xmm/mem128
PACKUSDWVorzeichenbehaftete Doppelwörter in vorzeichenlose Wörter packen (gesättigt)xmm, xmm/mem128
MOVNTDQANicht-temporäre Last (Streaming-Lasthinweis)xmm, mem128

SSE4.2 – SSE4.2

GedächtnisstützeBeschreibungOperanden
PCMPGTQVergleichen Sie gepackte Quadwords für größer als (vorzeichenbehaftet)xmm, xmm/mem128
PCMPEQQVergleichen Sie gepackte Quadwords auf Gleichheitxmm, xmm/mem128
CRC32Akkumulieren Sie den CRC32C-Wertreg32/64, reg/mem8/16/32/64
POPCNTBevölkerungszahl (Anzahl der 1-Bits)reg, reg/mem
PCMPESTRIGepackte Zeichenfolgen mit expliziter Länge und Index vergleichenxmm, xmm/mem128, imm8
PCMPESTRMGepackte Zeichenfolgen mit expliziter Länge vergleichen, Maskexmm, xmm/mem128, imm8
PCMPISTRIGepackte Zeichenfolgen mit impliziter Länge vergleichen, Indexxmm, xmm/mem128, imm8
PCMPISTRMGepackte Zeichenfolgen mit impliziter Länge vergleichen, Maskexmm, xmm/mem128, imm8

String-Textverarbeitung (SSE4.2 imm8-Flags)

Die String-Vergleichsanweisungen verwenden ein imm8-Byte zur Steuerung:

BitsFeldWerte
1:0Aggregiertes Ergebnis00=jeweils gleich, 01=gleich geordnet, 10=gleich mit Vorzeichen, 11=gleich ohne Vorzeichen
3:2Polarität00=+, 01=negativ, 10=maskiert+, 11=maskiert-
5:4Ausgabeauswahl00 = niedrigstwertiger Index, 01 = höchstwertiger Index, 10 = erstes gesetztes Bit
6Intrsx0=int-Byte-Vergleich, 1=vorzeichenloser Byte-Vergleich

Category: Assembly

PBXB64 Status: Referenzthema fuer Assembler-Syntax und Familienhinweise; untergeordnete Instruktionsseiten und registrierte Tests liefern den endgueltigen Support-Nachweis.

Beschreibung

Dieses Assembler-Thema gruppiert PBXB64-x64-Assembler-Syntax, Direktiven, Adressierungsregeln oder Mnemonik-Familien. Behandeln Sie es als Navigation plus Nutzungshinweis, sofern keine Unterseite oder kein registrierter Test eine konkrete Instruktionsform belegt.

Prüfung der Instruktionsfamilie

Verwenden Sie diese Mnemonik-Übersichten als Einstieg in fokussierte Assembler-Tests. Eine vollständige Prüfung nennt CPU-Feature-Bit, Operandenbreite, Register- oder Speicherform, Flag-Auswirkungen und ob die Instruktion im Windows-x64-User-Mode gültig ist.

PBXB64-Integrationshinweise

Inline-Assembler muss die Windows-x64-Aufrufkonvention erhalten, wenn die Kontrolle zu compilererzeugtem Code zurückkehrt. Sichern Sie nichtflüchtige Register, halten Sie Stack-Alignment bei Aufrufen ein und dokumentieren Sie absichtlich veränderte Flags oder Register.

Validierungsbeleg

Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.

Validierungsbeleg

Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.

Validierungsbeleg

Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.

Validierungsbeleg

Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.

Validierungsbeleg

Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.

Validierungsbeleg

Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.

Validierungsbeleg

Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.

Validierungsbeleg

Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.

Validierungsbeleg

Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.

Validierungsbeleg

Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.

Validierungsbeleg

Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.

Validierungsbeleg

Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.

Validierungsbeleg

Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.

Validierungsbeleg

Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.

Validierungsbeleg

Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.

Validierungsbeleg

Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.

Validierungsbeleg

Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.

Validierungsbeleg

Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.

Validierungsbeleg

Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.

Validierungsbeleg

Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.

Validierungsbeleg

Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.

Validierungsbeleg

Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.

Validierungsbeleg

Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.

Validierungsbeleg

Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.