Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Genererar en kodpost WOD_PUSH_CANONICAL_FRAME Windows varva ned data (WOD) i epilogen.
Syntax
. POPFRAME ⟦CODE-värde | ⟧
Parameters
värde
En valfri numerisk modifierare i intervallet 0–255.
Ömsesidigt uteslutande med CODE. Om du anger det valfria KOD-nyckelordet får kodposten varva ned en modifierare på 1.
Om du anger ett valfritt numeriskt värde i stället tar det emot det angivna värdet.
Om du inte skickar ett argument är värdet 0.
Anmärkningar
Important
Detta direktiv är experimentellt och kan komma att ändras. Aktivera Varva ned version 3 med ml64.exe /unwindv3.
. MED POPFRAME-direktivet kan ml64.exe användarna ange hur en bildrutefunktion spolas ned i ett epilog. Du kan bara använda den i en epilogregion, mellan . BEGINEPILOG och . ENDEPILOG.
- . POPFRAME är endast giltigt i Varva ned version 3. Det är epilogmotsvarigheten för . PUSHFRAME. Operandvärdet ska matcha motsvarande . PUSHFRAME i prologen.
- I Varva ned version 3, . POPFRAME måste visas före instruktionen som implementerar åtgärden för att ångras. För att säkerställa en överenskommelse omsluter du både avaktiveringsdirektiven och den kod som de är avsedda att varva ned i ett makro.
- I Avspolning av version 3 är epilogdirektiv obligatoriska för kodgenerering av epiloger. Inga epilog-avrullningskoder genereras utan ett
.BEGINEPILOG/.ENDEPILOGpar. - Dessa direktiv genererar varva ned metadata (
.xdataoch.pdataavsnitt) men producerar inte körbar kod.
Note
I Varva ned version 1 visas direktiv efter motsvarande instruktion. I Varva ned version 3 visas direktiv före instruktionen.
Exempel på avspolning 3
I följande exempel visas hur du använder . POPFRAME i en epilog för att ange en avbrottshanterare som push-överför och trycker på en kanonisk maskinram.
; ml64 /unwindv3 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
.pushframe
.pushreg rbx
push rbx
.allocstack 32
sub rsp, 32
.endprolog
; interrupt handler body ...
.beginepilog
.freestack 32
add rsp, 32
.popreg rbx
pop rbx
.popframe
.endepilog
iretq
Example1 ENDP
_text ENDS
END
Se även
x64 Varva ned version 3 (experimentell)
. PUSHFRAME
. BEGINEPILOG
. ENDEPILOG
MASM BNF-grammatik