Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Gera uma UWOP_PUSH_MACHFRAME entrada de código de desmantelamento. Se especificar a palavra-chave CODE opcional, a entrada do código unwind recebe um modificador de 1. Caso contrário, o modificador é 0.
Sintaxe
.PUSHFRAME⟦CODE⟧ ;P rior to Unwind Versão 3.PUSHFRAME⟦CODE⟧ | [0-255] ; Unwind Versão 3 específica
Remarks
Use .PUSHFRAME com ml64.exe para especificar como uma função de frame se desenrola. Só pode usá-lo dentro do prólogo, que se estende desde a declaração do PROCFRAME até à . Diretiva ENDPROLOG .
- Estas diretivas geram metadados de desmantelamento (
.xdatae.pdatasecções), mas não produzem código executável. - Preceda
.PUSHFRAMEcom as instruções que implementam as ações a desenrolar. - Para garantir o acordo, envolve tanto as diretivas de desmantelamento como o código que devem desfazer numa macro.
Comportamento do Unwind Versão 3
Importante
O suporte ao Unwind Versão 3 é experimental e está sujeito a alterações. Ative-o usando ml64.exe /unwindv3.
Na Versão 3 de Unwind, .PUSHFRAME emite uma WOD_PUSH_CANONICAL_FRAME entrada de código de unwind.
Quando especifica a palavra-chave CODE opcional, o valor do modificador de entrada do código de desmantelamento é 1.
Se especificar um valor opcional, a diretiva usa-o diretamente.
Se não passares um argumento, o valor é 0. O valor deve situar-se entre 0 e 255.
Nota: No Unwind Versão 1, as diretivas surgem após a instrução. No Unwind Versão 3, as diretivas surgem antes da instrução.
.PUSHFRAMEdeve aparecer antes da instrução que descreve. Este comportamento é o oposto da Versão 1, onde a diretiva segue a instrução.
Exemplo para unwindv3
; 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
A contraparte do epílogo é . POPFRAME.
Ver também
x64 Unwind Versão 3 (experimental)
Referência das diretivas
. POPFRAME
MASM BNF Gramática
MASM para x64 (ml64.exe)