.SAVEXMM128

Generiert entweder einen UWOP_SAVE_XMM128 Codeeintrag oder einen UWOP_SAVE_XMM128_FAR Ablagecodeeintrag für das angegebene XMM-Register und den Offset mithilfe des aktuellen Prolog-Offsets. Microsoft Assembler (MASM) wählt die effizienteste Codierung aus.

Syntax

.SAVEXMM128 xmmreg , Offset

Hinweise

Verwenden Sie .SAVEXMM128 diese ml64.exe Funktion, um anzugeben, wie eine Framefunktion abwickelt. Sie können es nur innerhalb des Prologs verwenden, der sich von der PROCFRAME Deklaration bis zur . ENDPROLOG-Direktive . Diese Direktiven generieren entwendige Metadaten (.xdata und .pdata Abschnitte), erzeugen jedoch keinen ausführbaren Code. Stellen Sie vor .SAVEXMM128 den Anweisungen, die die Aktionen tatsächlich implementieren, um sich zu entwunden. Um eine Vereinbarung zu gewährleisten, schließen Sie sowohl die Entleer-Direktiven als auch den Code ein, den sie in einem Makro entspannen sollen.

Offset muss ein Vielfaches von 16 sein.

Verhalten der Version 3 abwickeln

Important

Der Support von Version 3 wird experimentell gelöst und kann geändert werden. Aktivieren Sie es mithilfe von ml64.exe /unwindv3.

In "Abwickeln" Der Version 3 .SAVEXMM128 gibt entweder einen WOD_SAVE_XMM128 Codeeintrag oder einen WOD_SAVE_XMM128_FAR Entspanncode aus. Microsoft Assembler (MASM) wählt die effizienteste Codierung basierend auf der Größe von offset aus:

Entladungscode Zustand
WOD_SAVE_XMM128 Offset kann als skalierter 16-Bit-Wert codiert werden.
WOD_SAVE_XMM128_FAR Offset erfordert einen vollständigen 32-Bit-Wert.

Note

In Wickeln Version 1 kommen die Direktiven nach der Anweisung. In Der Version 3 entspannen, kommen die Direktiven vor die Anweisung. .SAVEXMM128 muss vor der beschriebenen Anweisung angezeigt werden. Diese Anforderung ist das Gegenteil von Version 1, wobei die Richtlinie der Anweisung folgt.

Beispiel für die Entspannung 3

; ml64 /unwindv3 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
   .allocstack 030h
   sub rsp, 030h
   .savexmm128 xmm6, 0
   movdqa [rsp], xmm6
   .savexmm128 xmm7, 010h
   movdqa [rsp+010h], xmm7
.endprolog
   ; rest of function ...
   movdqa xmm7, [rsp+010h]
   movdqa xmm6, [rsp]
   add rsp, 030h
   ret
Example1 ENDP
_text ENDS
END

Das Epilog-Gegenstück ist . RESTOREXMM128.

Siehe auch

x64 Entspannen Version 3 (experimentell)
Direktivenreferenz
MASM BNF Grammatik
MASM für x64 (ml64.exe)