. POPFRAME

에필로그에서 WOD_PUSH_CANONICAL_FRAME Windows WOD(해제 데이터) 해제 코드 항목을 생성합니다.

Syntax

. . POPFRAMECODE | value

매개 변수


0~255 범위의 선택적 숫자 한정자입니다.
CODE와 함께 사용할 수 없습니다. 선택적 CODE 키워드를 지정하면 해제 코드 항목은 1의 한정자를 받습니다.
대신 선택적 숫자 값을 지정하면 지정된 값을 받습니다.
인수를 전달하지 않으면 값은 0입니다.

비고

Important

이 지시문은 실험적이며 변경될 수 있습니다. 를 사용하여 해제 버전 3을 ml64.exe /unwindv3사용하도록 설정합니다.

입니다 . POPFRAME 지시문을 사용하면 ml64.exe 프레임 함수가 에필로그에서 해제되는 방법을 지정할 수 있습니다. 에필로그 영역 내에서만 사용할 수 있습니다 . BEGINEPILOG. ENDEPILOG.

  • . . POPFRAME 은 해제 버전 3에서만 유효합니다. 의 에필로그 대응입니다. 푸시프레임. 피연산자 값은 해당 값과 일치해야 합니다 . 프롤로그의 PUSHFRAME입니다.
  • 해제 버전 3에서 . 해제 할 동작을 구현하는 명령 앞에 POPFRAME이 나타나야 합니다. 규약을 보장하려면 해제 지시문과 매크로에서 해제하려는 코드를 모두 래핑합니다.
  • 해제 버전 3에서 에필로그 지시문은 에필로그 해제 코드 생성에 필수입니다. 에필로그 해제 코드는 쌍 없이 .BEGINEPILOG/.ENDEPILOG 내보내지지 않습니다.
  • 이러한 지시문은 해제 메타데이터(.xdata.pdata 섹션)를 생성하지만 실행 코드를 생성하지는 않습니다.

메모

Unwind 버전 1에서 지시문은 해당 명령 후에 표시됩니다. Unwind 버전 3에서는 명령 앞에 지시문이 표시됩니다.

unwindv3의 예

다음 예제 에서는 . 정식 머신 프레임을 푸시하고 팝하는 인터럽트 처리기를 나타내는 에필로그의 POPFRAME입니다.

; ml64 /unwindv3 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
   .pushframe
   .pushreg rbx
   push rbx
   .allocstack 32
   sub rsp, 32
.endprolog
   ; interrupt handler body ...
   .beginepilog
   .freestack 32
   add rsp, 32
   .popreg rbx
   pop rbx
   .popframe
   .endepilog
   iretq
Example1 ENDP
_text ENDS
END

참고하십시오

x64 해제 버전 3(실험적)
. 푸시프레임
. BEGINEPILOG
. ENDEPILOG
MASM BNF 문법