. FREESTACK

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, N instructie 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 (.xdata en .pdata secties), 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