다음을 통해 공유


PROC

레이블이라는 프로시저 블록의 시작과 끝을 표시합니다. 블록의 문은 CALL 명령 또는 INVOKE 지시문을 사용하여 호출할 수 있습니다.

구문

label PROCdistance⟧ ⟦language-type⟧ ⟦ PUBLIC | PRIVATE | EXPORT ⟧ ⟦<prologuearg>⟧ ⟦USES reglist⟧ ⟦⟦ 매개 변수: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

참고 항목

지시문 참조
MASM BNF 문법