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.
Markerar början och slutet av ett procedurblock som kallas etikett. Instruktionerna i blocket kan anropas med CALL-instruktionen eller INVOKE-direktivet .
Syntax
Etikett
PROC⟦distance⟧ ⟦language-type⟧ ⟦PUBLIC| |EXPORTPRIVATE⟧ ⟦<prologuearg>⟧ ⟦USESreglist⟧ ⟦,parameter ⟦:tag⟧ ... ⟧
FRAME⟦ ⟦:ehandler-address⟧ ⟧
Uttalanden
etikettENDP
Anmärkningar
Argumenten ⟦distance⟧ och ⟦language-type⟧ är endast giltiga i 32-bitars MASM.
FRAME ⟦ ⟦:ehandler-address⟧ ⟧ är endast giltig med ml64.exeoch gör att MASM genererar en funktionstabellpost i .pdata och varvar ned information i .xdata för en funktions strukturerade undantagshantering av avspolningsbeteende.
När attributet FRAME används måste det följas av en . ENDPROLOG-direktivet .
Mer information om hur du använder ml64.exefinns i MASM för x64 (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
Koden ovan genererar följande funktionstabell och varvar ned information:
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