Condividi tramite


.PUSHREG

Genera una UWOP_PUSH_NONVOL voce di codice di rimozione per il numero di registro specificato utilizzando l'offset corrente nel prologo.

Sintassi

. Registro PUSHREG

Osservazioni:

. PUSHREG consente agli utenti di ml64.exe di specificare la modalità di rimozione di una funzione frame ed è consentita solo all'interno del prologo, che si estende dalla dichiarazione PROC FRAME all'oggetto . Direttiva ENDPROLOG . Queste direttive non generano codice; generano .xdata solo e .pdata. . PUSHREG deve essere preceduto da istruzioni che implementano effettivamente le azioni da rimuovere. È consigliabile eseguire il wrapping di entrambe le direttive di rimozione e il codice che devono rimuovere in una macro per garantire l'accordo.

il registro può essere uno dei seguenti:
RAX | RCX | RDX | RBX | RDI | RSI | RBP | R8 | R9 | R10 | R11 | R12 | R13 | R14 | R15.

Per altre informazioni, vedere MASM per x64 (ml64.exe).

Esempio

Descrizione

L'esempio seguente illustra come eseguire il push di registri non volatili.

Codice

; 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

Vedi anche

Riferimento alle direttive
Grammatica BNF MASM