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 WOD_ALLOC_SMALL-, WOD_ALLOC_LARGE- eller WOD_ALLOC_HUGE avspolningskodpost med den angivna storleken för den aktuella förskjutningen i epilogen.
Syntax
. FREESTACK-storlek
Parameters
storlek
Antalet byte som ska frigöras från stacken. Måste vara en multipel av 8.
Anmärkningar
Important
Detta direktiv är experimentellt och kan komma att ändras.
Aktivera Varva ned version 3 med hjälp ml64.exe /unwindv3av .
- Du kan använda . FREESTACK endast i Varva ned version 3. Det är epilogens motsvarighet till . ALLOCSTACK.
- Du kan använda . FREESTACK endast inom en epilogregion, mellan . BEGINEPILOG och . ENDEPILOG.
- I Varva ned version 3, . FREESTACK måste visas före instruktionen
add rsp, Nsom implementerar stack-frigöring. - 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.
- Dessa direktiv genererar varva ned metadata (
.xdataoch.pdataavsnitt) men producerar inte körbar kod. - Microsoft Assembler (MASM) väljer den mest effektiva kodningen för en viss storlek.
MASM genererar en av tre varva ned-koder beroende på storleken:
| Varva ned kod | Tillstånd |
|---|---|
WOD_ALLOC_SMALL |
storlek ≤ 128 byte |
WOD_ALLOC_LARGE |
storlek ≤ 32 KB |
WOD_ALLOC_HUGE |
Storlek> 32 KB |
I Avspolning av version 3 är epilogdirektiv obligatoriska för kodgenerering av epiloger. Assemblern avger inte epilogavspolningskoder utan ett .BEGINEPILOG/.ENDEPILOG par.
Note
I Varva ned version 1 visas direktivet efter motsvarande instruktion. I Varva ned version 3 visas direktivet före instruktionen.
Exempel på avspolning 3
; ml64 /unwindv3 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
.allocstack 16
sub rsp, 16
.endprolog
; function body
.beginepilog
.freestack 16
add rsp, 16
.endepilog
ret
Example1 ENDP
_text ENDS
END
Se även
x64 Varva ned version 3 (experimentell)
Referens för direktiv
. ALLOCSTACK
. BEGINEPILOG
MASM BNF-grammatik