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.
Markeert het begin en einde van een procedureblok met de naam label. De instructies in het blok kunnen worden aangeroepen met de INSTRUCTIE CALL of INVOKE-instructie .
Syntax
Label
PROC⟦afstand⟧ ⟦taaltype⟧ ⟦PUBLIC| |EXPORTPRIVATE⟧ ⟦<proloogg>⟧ ⟦USESreglist⟧ ⟦,parameter ⟦:tag⟧ ... ⟧
FRAME⟦ ⟦:ehandler-address⟧ ⟧
Verklaringen
labelENDP
Opmerkingen
De afstand ⟦afstand⟧ en ⟦taaltype⟧ argumenten zijn alleen geldig in 32-bits MASM.
FRAME ⟦ ⟦:ehandler-address⟧ ⟧ is alleen geldig met ml64.exe, en zorgt ervoor dat MASM een functietabelvermelding genereert in .pdata en informatie in .xdata afwikkelt voor het verwerken van gestructureerde uitzonderingen van een functie.
Wanneer het FRAME kenmerk wordt gebruikt, moet het worden gevolgd door een . ENDPROLOG-richtlijn .
Zie MASM voor x64 (ml64.exe) voor meer informatie over het gebruik van ml64.exe.
Example
; ml64 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
push r10
.pushreg r10
push r15
.pushreg r15
push rbx
.pushreg rbx
push rsi
.pushreg rsi
.endprolog
; rest of function ...
ret
Example1 ENDP
_text ENDS
END
De bovenstaande code verzendt de volgende functietabel en ontspant informatie:
FileHeader->Machine 34404
Dumping Unwind Information for file ex2.exe
.pdata entry 1 0x00001000 0x00001023
Unwind data: 0x00002000
Unwind version: 1
Unwind Flags: None
Size of prologue: 0x08
Count of codes: 3
Frame register: rbp
Frame offset: 0x0
Unwind codes:
Code offset: 0x08, SET_FPREG, register=rbp, offset=0x00
Code offset: 0x05, ALLOC_SMALL, size=0x10
Code offset: 0x01, PUSH_NONVOL, register=rbp