Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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
.PUSHFRAME⟦CODE⟧ ;P rior per rimuovere la versione 3.PUSHFRAME⟦CODE⟧ | [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 (
.xdatae.pdatasezioni) ma non producono codice eseguibile. - Precedere
.PUSHFRAMEle 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.
.PUSHFRAMEdeve 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)