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 einen WOD_PUSH_CANONICAL_FRAME Windows relax data (WOD)-Codeeintrag im Epilog.
Syntax
. POPFRAME ⟦CODEwert | ⟧
Parameter
Wert
Ein optionaler numerischer Modifizierer im Bereich 0 bis 255.
Sich gegenseitig ausschließend mit CODE. Wenn Sie das optionale CODE-Schlüsselwort angeben, erhält der Entspanncodeeintrag einen Modifizierer von 1.
Wenn Sie stattdessen einen optionalen numerischen Wert angeben, erhält er den angegebenen Wert.
Wenn Sie kein Argument übergeben, ist der Wert 0.
Hinweise
Important
Diese Richtlinie ist experimentell und kann geändert werden. Aktivieren Sie die Abspannversion 3 mit ml64.exe /unwindv3.
Die . Mithilfe der POPFRAME-Direktive können ml64.exe Benutzer angeben, wie eine Framefunktion in einem Epilog abwickelt. Sie können es nur innerhalb einer Epilogregion zwischen . BEGINEPILOG und . ENDEPILOG.
- . POPFRAME ist nur in Version 3 zum Abwickeln gültig. Es ist das Epilog-Gegenstück von . PUSHFRAME. Der Operandwert sollte mit dem entsprechenden übereinstimmen . PUSHFRAME im Prolog.
- In Relax Version 3, . POPFRAME muss angezeigt werden, bevor die Anweisung angezeigt wird, mit der die Aktion implementiert wird, 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.
- In "Relax Version 3" sind Epilogdirektiven für die Codegenerierung von Epilogen obligatorisch. Ohne Paar
.BEGINEPILOG/.ENDEPILOGwerden keine Epilog-Entlastungscodes ausgegeben. - Diese Direktiven generieren entwendige Metadaten (
.xdataund.pdataAbschnitte), erzeugen jedoch keinen ausführbaren Code.
Note
In "Abwickeln" Version 1 werden Direktiven nach der entsprechenden Anweisung angezeigt. In Der Version 3 entspannen, werden Direktiven vor der Anweisung angezeigt.
Beispiel für die Entspannung 3
Das folgende Beispiel zeigt, wie sie verwendet wird . POPFRAME in einem Epilog, der auf einen Interrupthandler hinweist, der einen kanonischen Computerrahmen drückt und auffüllt.
; ml64 /unwindv3 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
.pushframe
.pushreg rbx
push rbx
.allocstack 32
sub rsp, 32
.endprolog
; interrupt handler body ...
.beginepilog
.freestack 32
add rsp, 32
.popreg rbx
pop rbx
.popframe
.endepilog
iretq
Example1 ENDP
_text ENDS
END
Siehe auch
x64 Entspannen Version 3 (experimentell)
. PUSHFRAME
. BEGINEPILOG
. ENDEPILOG
MASM BNF Grammatik