Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Gera uma entrada de código de desenrolamento por push de dois registros para o par de registro especificado usando o deslocamento atual no prólogo.
Syntax
.PUSH2REGregister1, register2
Parâmetros
register1
O primeiro registro a ser enviado por push. Deve ser um registro de 64 bits de uso geral.
register2
O segundo registro a ser enviado por push. 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. Habilite o Descontrair versão 3 usando ml64.exe /unwindv3.
- Use
.PUSH2REGpara especificar como uma função de quadro desenrola. Você só pode usar essa diretiva dentro do prólogo, que se estende da declaração PROCFRAMEpara a . Diretiva ENDPROLOG . - Essas diretivas geram metadados de desenrolamento (
.xdatae.pdataseções), mas não produzem código executável. No Unwind Versão 3,.PUSH2REGdeve aparecer antes da instrução que realmente implementa a ação a ser desfeito. Para garantir o acordo, é uma boa prática encapsular 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_2código de desenrolamento. Caso contrário, o MASM emitirá umWOD_PUSH2có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.
Exemplo de desenrolamento3
; ml64 /unwindv3 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
.push2reg r10, r11
push2 r10, r11
.push2reg rbx, rsi
push2 rbx, rsi
.endprolog
; rest of function ...
ret
Example1 ENDP
_text ENDS
END
Consulte também
x64 Descontrair versão 3 (experimental)
Referência de diretivas
. POP2REG
. PUSHREG
. ENDPROLOG
Gramática BNF do MASM