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 UWOP_PUSH_MACHFRAME entrée de code de déroulement. Si vous spécifiez le mot clé CODE facultatif, l’entrée de code de déroulement obtient un modificateur de 1. Sinon, le modificateur est 0.
Syntaxe
.PUSHFRAME⟦CODE⟧ ;P rior vers Unwind Version 3.PUSHFRAME⟦CODE⟧ | [0-255] ; Décompresser la version 3 spécifique
Notes
Utilisez-la .PUSHFRAMEml64.exe pour spécifier la façon dont une fonction frame se déroule. Vous ne pouvez l’utiliser que dans le prologue, qui s’étend de la déclaration PROCFRAME au . Directive ENDPROLOG .
- Ces directives génèrent des métadonnées de déroulement (
.xdataet.pdatades sections) mais ne produisent pas de code exécutable. - Précèdez
.PUSHFRAMEles instructions qui implémentent les actions à décoder. - 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.
Déroulement du comportement version 3
Important
La prise en charge de la version 3 du déroulement est expérimentale et peut être modifiée. Activez-le à l’aide de ml64.exe /unwindv3.
Dans Unwind Version 3, .PUSHFRAME émet une WOD_PUSH_CANONICAL_FRAME entrée de code de déroulement.
Lorsque vous spécifiez le mot clé CODE facultatif, la valeur du modificateur d’entrée de code de déroulement est 1.
Si vous spécifiez une valeur facultative, la directive l’utilise directement.
Si vous ne passez pas d’argument, la valeur est 0. La valeur doit être comprise entre 0 et 255.
Note: Dans Unwind Version 1, les directives viennent après l’instruction. Dans Unwind Version 3, les directives sont antérieures à l’instruction.
.PUSHFRAMEdoit apparaître avant l’instruction qu’elle décrit. Ce comportement est l’inverse de la version 1, où la directive suit l’instruction.
Exemple de déroulement3
; ml64 /unwindv3 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
.pushframe CODE
.endprolog
; interrupt handler body ...
iretq
Example1 ENDP
_text ENDS
END
L’épilogue équivalent est . POPFRAME.
Voir aussi
x64 Unwind Version 3 (expérimentale)
Informations de référence sur les directives
. POPFRAME
Grammaire MASM BNF
MASM pour x64 (ml64.exe)