Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Hiermee wordt een WOD_ALLOC_SMALL, WOD_ALLOC_LARGE of WOD_ALLOC_HUGE codevermelding met de opgegeven grootte voor de huidige offset in de epiloog gegenereerd.
Syntax
. GROOTTE VAN FREESTACK
Parameters
grootte
Het aantal bytes dat de toewijzing van de stack ongedaan moet worden gemaakt. Moet een veelvoud van 8 zijn.
Opmerkingen
Important
Deze richtlijn is experimenteel en kan worden gewijzigd.
Schakel versie 3 uit door gebruik te maken van ml64.exe /unwindv3.
- U kunt dit gebruiken. FREESTACK alleen in Relax versie 3. Het is de epiloog-tegenhanger voor . ALLOCSTACK.
- U kunt dit gebruiken. FREESTACK alleen binnen een epilooggebied, tussen . BEGINEPILOG en . ENDEPILOG.
- In Relax versie 3, . FREESTACK moet worden weergegeven vóór de
add rsp, Ninstructie die de stack deallocation implementeert. - Om de overeenkomst te garanderen, verpakt u zowel de richtlijnen voor afwikkelen als de code die ze zijn bedoeld om in een macro tot rust te komen.
- Deze instructies genereren een ontspannen metagegevens (
.xdataen.pdatasecties), maar produceren geen uitvoerbare code. - Microsoft Assemblyer (MASM) kiest de meest efficiënte codering voor een bepaalde grootte.
MASM verzendt een van de drie afwikkelcodes, afhankelijk van de grootte:
| Code tot rust laten komen | Conditie |
|---|---|
WOD_ALLOC_SMALL |
grootte ≤ 128 bytes |
WOD_ALLOC_LARGE |
grootte ≤ 32 kB |
WOD_ALLOC_HUGE |
Grootte> 32 KB |
In Relax versie 3 zijn epiloogrichtlijnen verplicht voor het afwikkelen van codegeneratie van epiloog. De assemblyer verzendt geen epiloog code zonder een .BEGINEPILOG/.ENDEPILOG paar.
Note
In Relax versie 1 wordt de instructie weergegeven na de bijbehorende instructie. In Relax versie 3 wordt de instructie weergegeven vóór de instructie.
Voorbeeld voor relaxv3
; 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
Zie ook
x64 Versie 3 tot rust laten komen (experimenteel)
Naslaginformatie over richtlijnen
. ALLOCSTACK
. BEGINEPILOG
MASM BNF-grammatica