.PUSHREG
Vygeneruje UWOP_PUSH_NONVOL
položku odvinutí kódu pro zadané číslo registru pomocí aktuálního posunu v prologue.
Syntaxe
. REGISTRACE PUSHREG
Poznámky
. PUSHREG umožňuje ml64.exe uživatelům určit, jak se funkce rámce odvíjeje a je povolena pouze v rámci prologue, která se rozšiřuje z deklarace PROC FRAME na . ENDPROLOG – direktiva. Tyto direktivy negenerují kód; pouze generují .xdata
a .pdata
. . FUNKCE PUSHREG by měla předcházet pokynům, které skutečně implementují akce, které se mají zrušit. Je vhodné zabalit direktivy unwind i kód, který mají v makru uvolnit, aby se zajistila smlouva.
může být jedním z těchto:
RAX | RCX | RDX | RBX | RDI | RSI | RBP | R8 | R9 | R10 | R11 | R12 | R13 | R14 | R15.
Další informace najdete v masm pro platformu x64 (ml64.exe).
Vzorek
Popis
Následující ukázka ukazuje, jak nasdílit nevolatilní registry.
Kód
; 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