Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Markiert den Anfang und das Ende eines Prozedurblocks, der als Bezeichnung bezeichnet wird. Die Anweisungen im Block können mit der CALL-Anweisung oder DER INVOKE-Direktive aufgerufen werden.
Syntax
label PROC ⟦distance⟧ ⟦language-type⟧ ⟦ PUBLIC | PRIVATE | EXPORT ⟧ ⟦<prologuearg>⟧ ⟦USES reglist⟧ ⟦, parameter ⟦:tag⟧ ... ⟧
⟦FRAME ⟦:ehandler-address⟧ ⟧
Aussagen
Bezeichnung ENDP
Hinweise
Die Argumente ⟦Abstand⟧ und ⟦Sprachtyp⟧ sind nur in 32-Bit-MASM gültig.
⟦FRAME ⟦:ehandler-address⟧ ⟧ ist nur für ml64.exe gültig und bewirkt, dass MASM einen Funktionstabelleneintrag in .pdata generiert und Informationen in XData für das strukturierte Ausnahmebehandlungsverhalten einer Funktion entspannt.
Wenn das FRAME-Attribut verwendet wird, muss es von einem . ENDPROLOG-Direktive .
Weitere Informationen zur Verwendung von ml64.exe finden Sie unter MASM für x64 (ml64.exe ).
Beispiel
; 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
Der obige Code gibt die folgende Funktionstabelle aus und entspannt Informationen:
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