. POP2REG

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

Syntax

. POP2REGregister1, register2

Parâmetros

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

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

register1 e register2 podem ser cada 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.

Observações

Importante

Esta diretiva é experimental e está sujeita a alterações. Habilitar Descontrair versão 3 com ml64.exe /unwindv3.

  • . POP2REG só é válido no Unwind Versão 3. É o epílogo equivalente a . PUSH2REG.
  • . POP2REG 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.
  • Em Descontrair versão 3, . POP2REG deve aparecer antes da instrução que realmente implementa a ação a ser desfeito.
  • 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. Nenhum epílogo desenrola códigos são emitidos sem um .BEGINEPILOG/.ENDEPILOG par.
  • Para garantir o acordo, embrulhe as diretivas de desenrolamento e o código que elas devem descontrair em uma macro.

Se o registro1 e o registro2 forem consecutivos e em ordem crescente, o MASM emitirá um WOD_PUSH_CONSECUTIVE_2 código de desenrolamento. Caso contrário, o MASM emitirá um WOD_PUSH2 código de desenrolamento.

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.

Example

; ml64 /unwindv3 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
   .push2reg rbx, rsi
   push2 rbx, rsi
   .push2reg r10, r11
   push2 r10, r11
.endprolog
   ; rest of function ...
   .beginepilog
   .pop2reg r10, r11
   pop2 r10, r11
   .pop2reg rbx, rsi
   pop2 rbx, rsi
   .endepilog
   ret
Example1 ENDP
_text ENDS
END

Consulte também

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