Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Génère une entrée de code de déroulement contextuelle à deux registres pour la paire d’inscriptions spécifiée à l’aide du décalage actuel dans l’épilogue.
Syntax
. POP2REGregister1, register2
Paramètres
register1
Premier registre à afficher. Doit être un registre 64 bits universel.
register2
Deuxième registre à afficher. Doit être un registre 64 bits universel.
register1 et register2 peuvent être l’un des suivants :
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.
Remarques
Important
Cette directive est expérimentale et peut être modifiée. Activez Unwind Version 3 avec ml64.exe /unwindv3.
- . POP2REG est valide uniquement dans Unwind Version 3. C’est l’épilogue équivalent à . PUSH2REG.
- . POP2REG est autorisé uniquement dans une région épilogue, entre . BEGINEPILOG et . ENDEPILOG.
- Ces directives génèrent des métadonnées de déroulement (
.xdataet.pdatades sections) mais ne produisent pas de code exécutable. - Dans Unwind Version 3, . POP2REG doit apparaître avant l’instruction qui implémente réellement l’action à annuler.
- Dans Unwind Version 3, les directives d’épilogue sont obligatoires pour la génération de code de déroulement d’épilogue. Aucun code de déroulement d’épilogue n’est émis sans
.BEGINEPILOG/.ENDEPILOGpaire. - Pour garantir l’accord, incluez à la fois les directives de déroulement et le code qu’ils sont destinés à décompresser dans une macro.
Si register1 et register2 sont consécutifs et dans un ordre croissant, MASM émet un WOD_PUSH_CONSECUTIVE_2 code de déroulement. Sinon, MASM émet un WOD_PUSH2 code de déroulement.
Note
Dans Unwind Version 1, la directive apparaît après l’instruction correspondante. Dans Unwind Version 3, la directive apparaît avant l’instruction.
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
Voir aussi
x64 Unwind Version 3 (expérimentale)
Informations de référence sur les directives
. PUSH2REG
. POPREG
. BEGINEPILOG
Grammaire MASM BNF