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 WOD_PUSH entrada de código de desenrolamento para o registo especificado usando o deslocamento atual no epílogo.
Syntax
. Registo POPREG
Parâmetros
Registo
A caixa registadora para estourar. Deve ser um registo de 64 bits de uso geral.
Remarks
Importante
Esta diretiva é experimental e está sujeita a alterações. Ative o Unwind Versão 3 usando a /unwindv3 opção em ml64.exe.
.POPREG só é válido no Unwind Versão 3. É o equivalente no epílogo de . PUSHREG.
.POPREG só é permitido dentro de uma região de epílogo, entre . BEGINEPILOG e . FIM EPÍLOGO. Estas diretivas geram metadados de desmantelamento (.xdata e .pdata secções), mas não produzem código executável. No Unwind Versão 3, .POPREG deve aparecer antes da pop instrução que implementa a restauração do registo. Para garantir o acordo, envolve tanto as diretivas de desmantelamento como o código que devem desfazer numa macro.
O registo pode ser um dos:
RAX, RCX, RDX, RBX, RDI, RSI, RBP, R8, R9, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31
Na Versão 3 do Unwind, as diretivas de epílogo são obrigatórias para a geração do código de desmantelamento do epílogo. O assembler não emite códigos de desmantelamento do epílogo sem um .BEGINEPILOG/.ENDEPILOG par.
Note
No Unwind Versão 1, a diretiva aparece após a instrução correspondente. Na Versão 3 de Desenrolar, a diretiva aparece antes da instrução.
Exemplo para unwindv3
; ml64 /unwindv3 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
.pushreg rbx
push rbx
.pushreg rsi
push rsi
.endprolog
; rest of function ...
.beginepilog
.popreg rsi
pop rsi
.popreg rbx
pop rbx
.endepilog
ret
Example1 ENDP
_text ENDS
END
Ver também
x64 Unwind Versão 3 (experimental)
Referência de Diretivas
. PUSHREG
. POP2REG
. BEGINEPILOG
MASM BNF Gramática