Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Помечает начало и конец блока процедуры, называемого меткой. Инструкции в блоке можно вызывать с помощью инструкции CALL или директивы INVOKE .
Синтаксис
Метки
PROC⟦distance⟧ ⟦language-type⟧ ⟦PUBLIC| |PRIVATEEXPORT⟧< ⟦prologuearg>⟧ ⟦reglist⟧ ⟦,parameter ⟦:tag⟧ ...USES⟧
FRAME⟦ ⟦:ehandler-address⟧ ⟧
Заявления
labelENDP
Замечания
Аргументы ⟦distance⟧ и ⟦language-type⟧ допустимы только в 32-разрядном MASM.
FRAME ⟦ ⟦:ehandler-address⟧ ⟧ действителен только с ml64.exeи приводит к созданию записи таблицы функций в PDATA и отмене сведений в Xdata для обработки структурированных исключений функции.
FRAME Если используется атрибут, за ним следует. Директива ENDPROLOG.
Дополнительные сведения об использовании ml64.exe см. в статье MASM для x64 (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