. POPREG

Gera uma WOD_PUSH entrada de código de desenrolamento para o registro especificado usando o deslocamento atual no epílogo.

Syntax

. Registro POPREG

Parâmetros

Registrar
O registro a ser pop. Deve ser um registro de 64 bits de uso geral.

Observações

Importante

Esta diretiva é experimental e está sujeita a alterações. Habilite o Descontrair versão 3 usando a opção /unwindv3 em ml64.exe.

.POPREG é válido apenas na Versão 3 do Unwind. É o epílogo equivalente a . PUSHREG.

.POPREG só é permitido dentro de uma região de epílogo, entre . BEGINEPILOG e . ENDEPILOG. Essas diretivas geram metadados de desenrolamento (.xdata e .pdata seçõ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 registro. Para garantir o acordo, embrulhe as diretivas de desenrolamento e o código que elas devem descontrair em uma macro.

O registro pode ser um dos seguintes:
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

No Unwind Versão 3, as diretivas de epílogo são obrigatórias para a geração de código de desenrolamento do epílogo. O assembler não emite códigos de desenrolamento de epílogo sem um .BEGINEPILOG/.ENDEPILOG par.

Note

No Descontrair versão 1, a diretiva é exibida após a instrução correspondente. No Descontrair versão 3, a diretiva é exibida antes da instrução.

Exemplo de desenrolamento3

; 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

Consulte também

x64 Descontrair versão 3 (experimental)
Referência de diretivas
. PUSHREG
. POP2REG
. BEGINEPILOG
Gramática BNF do MASM