.PUSHFRAME

Genera una UWOP_PUSH_MACHFRAME voce di codice di rimozione. Se si specifica la parola chiave CODE facoltativa, la voce del codice di rimozione ottiene un modificatore pari a 1. In caso contrario, il modificatore è 0.

Sintassi

.PUSHFRAMECODE⟧ ;P rior per rimuovere la versione 3 .PUSHFRAMECODE⟧ | [0-255] ; Rimozione versione 3 specifica

Osservazioni:

Usare .PUSHFRAME con ml64.exe per specificare la modalità di rimozione di una funzione frame. È possibile usarlo solo all'interno del prologo, che si estende dalla dichiarazione PROCFRAMEall'oggetto . Direttiva ENDPROLOG .

  • Queste direttive generano metadati di rimozione (.xdata e .pdata sezioni) ma non producono codice eseguibile.
  • Precedere .PUSHFRAME le istruzioni che implementano le azioni da rimuovere.
  • Per garantire il contratto, eseguire il wrapping di entrambe le direttive di rimozione e il codice da rimuovere in una macro.

Comportamento di rimozione versione 3

Importante

Il supporto della versione 3 della rimozione è sperimentale ed è soggetto a modifiche. Abilitarlo usando ml64.exe /unwindv3.

In Rimozione versione 3 .PUSHFRAME genera una voce di WOD_PUSH_CANONICAL_FRAME codice di rimozione.
Quando si specifica la parola chiave CODE facoltativa, il valore del modificatore di voce del codice di rimozione è 1.
Se si specifica un valore facoltativo, la direttiva la usa direttamente.
Se non si passa un argomento, il valore è 0. Il valore deve essere compreso nell'intervallo da 0 a 255.

Nota: In Rimozione versione 1 le direttive vengono fornite dopo l'istruzione . In Rimozione versione 3, le direttive vengono prima dell'istruzione. .PUSHFRAME deve essere visualizzato prima dell'istruzione descritta. Questo comportamento è l'opposto della versione 1, dove la direttiva segue l'istruzione .

Esempio di rimozionev3

; ml64 /unwindv3 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
   .pushframe CODE
.endprolog
   ; interrupt handler body ...
   iretq
Example1 ENDP
_text ENDS
END

La controparte dell'epilogo è . POPFRAME.

Vedi anche

Versione di rimozione x64 3 (sperimentale)
Riferimento alle direttive
. POPFRAME
Grammatica BNF MASM
MASM per x64 (ml64.exe)