PROC
標記稱為 標籤 的程式區塊開頭和結尾。 區塊中的語句可以使用 CALL 指令或 INVOKE 指示詞來呼叫 。
語法
label PROC ⟦ distance ⟧ ⟦ language-type ⟧ ⟦ PUBLIC PRI加值稅E | | EXPORT ⟧ ⟦ prologuearg >< ⟧ ⟦ 使用 reglist ⟧ ⟦, parameter ⟦ : tag ⟧ ... ⟧
⟦FRAME ⟦ : ehandler-address ⟧ ⟧
語句
標籤 ENDP
備註
⟦ distance ⟧ 和 ⟦ language-type ⟧ 引數只在 32 位 MASM 中有效。
⟦FRAME ⟦ : ehandler-address ⟧ ⟧ 僅適用于 ml64.exe,並導致 MASM 在 .pdata 中產生函式資料表專案,並在 .xdata 中針對函式的結構化例外狀況處理回溯行為產生函式資料表專案。
使用 FRAME 屬性時,它後面必須接著 。ENDPROLOG 指示詞。
如需使用 ml64.exe 的詳細資訊, 請參閱 適用于 x64 的 MASM (ml64.exe)。
範例
; 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
上述程式碼會發出下列函式資料表和回溯資訊:
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
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應