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 entrada de código push unwind de dois registos para o par de registos especificado usando o deslocamento atual no prólogo.
Syntax
.PUSH2REGregisto1, registo2
Parâmetros
registo1
O primeiro registo a pressionar. Deve ser um registo de 64 bits de uso geral.
registo2
O segundo registo para pressionar. Deve ser um registo de 64 bits de uso geral.
O Registo1 e o Registo2 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.
Remarks
Importante
Esta diretiva é experimental e está sujeita a alterações. Ative o Unwind Versão 3 usando ml64.exe /unwindv3.
- Use
.PUSH2REGpara especificar como uma função de frame se desenrola. Só pode usar esta diretiva dentro do prólogo, que se estende desde a declaração do PROCFRAMEaté ao . Diretiva ENDPROLOG . - Estas diretivas geram metadados de desmantelamento (
.xdatae.pdatasecçõ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 desenrolar. Para garantir o acordo, é boa prática envolver tanto as diretivas de desmantelamento como o código que elas devem desfazer numa macro. - Se o registo1 e o registo2 forem consecutivos e por ordem crescente, o MASM emite um
WOD_PUSH_CONSECUTIVE_2código de desmantelamento. Caso contrário, o MASM emite umWOD_PUSH2código de desmantelamento.
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
.push2reg r10, r11
push2 r10, r11
.push2reg rbx, rsi
push2 rbx, rsi
.endprolog
; rest of function ...
ret
Example1 ENDP
_text ENDS
END
Ver também
x64 Unwind Versão 3 (experimental)
Referência de Diretivas
. POP2REG
. PUSHREG
. ENDPROLOG
MASM BNF Gramática