Udostępnij za pośrednictwem


.PUSHREG

Generuje wpis kodu odwijanego UWOP_PUSH_NONVOL dla określonego numeru rejestru przy użyciu bieżącego przesunięcia w prologu.

Składnia

. Rejestracja PUSHREG

Uwagi

. FUNKCJA PUSHREG umożliwia użytkownikom ml64.exe określenie sposobu odwijania funkcji ramki i jest dozwolone tylko w prologu, który rozciąga się od deklaracji PROC FRAME do . ENDPROLOG , dyrektywa. Te dyrektywy nie generują kodu; generują .xdata tylko wartości i .pdata. . ELEMENT PUSHREG powinien być poprzedzony instrukcjami, które faktycznie implementują akcje, które mają być niezauczone. Dobrym rozwiązaniem jest zawijanie zarówno dyrektyw odwijania, jak i kodu, który mają na celu odwinięcie makra w celu zapewnienia porozumienia.

rejestracja może być jedną z:
RAX | RCX | RDX | RBX | RDI | RSI | RBP | R8 | R9 | R10 | R11 | R12 | R13 | R14 | R15.

Aby uzyskać więcej informacji, zobacz MASM for x64 (ml64.exe).

Przykład

opis

W poniższym przykładzie pokazano, jak wypychać rejestry nietrwałe.

Kod

; 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

Zobacz też

Odwołanie do dyrektyw
Gramatyka MASM BNF