.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 ml64.exe Benutzern anzugeben, wie sich eine Framefunktion entspannt und nur innerhalb des Prologs zulässig ist, der sich von der PROCFRAME-Deklaration bis zur . 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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für