Teilen über


.PUSHREG

Generiert einen UWOP_PUSH_NONVOL Entspanncodeeintrag für die angegebene Registernummer mithilfe des aktuellen Offsets im Prolog.

Syntax

.PUSHREG Register

Hinweise

. PUSHREG ermöglicht es ml64.exe Benutzern anzugeben, wie sich eine Framefunktion ablöst und nur innerhalb des Prologs zulässig ist, der sich von der PROC FRAME-Deklaration auf die . ENDPROLOG-Direktive . Diese Direktiven generieren keinen Code; sie generieren .xdata und .pdata. . PUSHREG sollte Anweisungen vorangestellt werden, mit denen die Aktionen tatsächlich umgesetzt werden, um sich zu entwunden. Es empfiehlt sich, sowohl die Entspannrichtlinien als auch den Code, mit dem sie sich in einem Makro entspannen sollen, um eine Einigung sicherzustellen.

Das Register kann eine der folgenden Sein:
RAX | RCX | RDX | RBX | RDI | RSI | RSP | R8 | R9 | R10 | R11 | R12 | R13 | R14 | R15.

Weitere Informationen finden Sie unter MASM für x64 (ml64.exe).

Beispiel

Beschreibung

Das folgende Beispiel zeigt, wie nicht veränderliche Register verschoben werden.

Code

; ml64 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
   push r10
.pushreg r10
   push r15
.pushreg r15
   push rbx
.pushreg rbx
   push rsi
.pushreg rsi
.endprolog
   ; rest of function ...
   ret
Example1 ENDP
_text ENDS
END

Siehe auch

Direktivenreferenz
MASM BNF Grammatik