.PUSHREG

프롤로그의 UWOP_PUSH_NONVOL 현재 오프셋을 사용하여 지정된 레지스터 번호에 대한 해제 코드 항목을 생성합니다.

구문

.PUSHREG register

설명

. PUSHREG를 사용하면 ml64.exe 사용자가 프레임 함수의 해제 방법을 지정할 수 있으며 PROCFRAME 선언에서 확장되는 프롤로그 내에서만 허용됩니다. ENDPROLOG 지시문입니다. 이러한 지시문은 코드를 생성하지 않습니다. 만 생성 .xdata 하고 .pdata. . PUSHREG 앞에는 해제할 작업을 실제로 구현하는 지침이 있어야 합니다. 규약을 보장하기 위해 해제 지시문과 매크로에서 해제하려는 코드를 모두 래핑하는 것이 좋습니다.

레지스터 는 다음 중 하나일 수 있습니다.
RAX | RCX | RDX | RBX | RDI | RSI | RBP | R8 | R9 | R10 | R11 | R12 | R13 | R14 | R15.

자세한 내용은 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

참고 항목

지시문 참조
MASM BNF 문법