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.
Genereert een WOD_PUSH_CANONICAL_FRAME Windows afwikkelen van gegevens (WOD) om codevermelding in de epiloog af te wikkelen.
Syntax
. POPFRAME ⟦CODEwaarde | ⟧
Parameters
waarde
Een optionele numerieke wijziging in het bereik 0-255.
Wederzijds exclusief met CODE. Als u het optionele trefwoord CODE opgeeft, ontvangt de codevermelding voor afwikkelen een wijziging van 1.
Als u in plaats daarvan een optionele numerieke waarde opgeeft, ontvangt deze de opgegeven waarde.
Als u geen argument doorgeeft, is de waarde 0.
Opmerkingen
Important
Deze richtlijn is experimenteel en kan worden gewijzigd. Schakel versie 3 van de rust in met ml64.exe /unwindv3.
De . Met POPFRAME-instructie kunnen ml64.exe gebruikers opgeven hoe een framefunctie in een epilog tot rust komt. U kunt deze alleen gebruiken binnen een epiloggebied, tussen . BEGINEPILOG en . ENDEPILOG.
- . POPFRAME is alleen geldig in afwikkelversie 3. Het is de epilog tegenhanger van . PUSHFRAME. De operandwaarde moet overeenkomen met de bijbehorende . PUSHFRAME in de proloog.
- In Relax versie 3, . POPFRAME moet worden weergegeven voordat de instructie waarmee de actie wordt geïmplementeerd, wordt uitgevoerd. 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.
- In Relax versie 3 zijn epiloogrichtlijnen verplicht voor het afwikkelen van codegeneratie van epiloog. Er worden geen epiloog-afwikkelcodes verzonden zonder
.BEGINEPILOG/.ENDEPILOGeen paar. - Deze instructies genereren een ontspannen metagegevens (
.xdataen.pdatasecties), maar produceren geen uitvoerbare code.
Note
In Relax versie 1 worden de instructies weergegeven na de bijbehorende instructie. In Relax versie 3 worden instructies weergegeven vóór de instructie.
Voorbeeld voor relaxv3
In het volgende voorbeeld ziet u hoe u deze kunt gebruiken. POPFRAME in een epiloog om een interrupthandler aan te geven die een canonieke machineframe pusht en popt.
; 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
Zie ook
x64 Versie 3 tot rust laten komen (experimenteel)
. PUSHFRAME
. BEGINEPILOG
. ENDEPILOG
MASM BNF-grammatica