Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
.SAVEXMM128xmmreg , 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)