.PUSHREG
프롤로그의 UWOP_PUSH_NONVOL
현재 오프셋을 사용하여 지정된 레지스터 번호에 대한 해제 코드 항목을 생성합니다.
구문
.PUSHREG register
설명
. PUSHREG를 사용하면 ml64.exe 사용자가 프레임 함수의 해제 방법을 지정할 수 있으며 PROC FRAME 선언에서 확장되는 프롤로그 내에서만 허용됩니다. ENDPROLOG 지시문입니다. 이러한 지시문은 코드를 생성하지 않습니다. 만 생성 .xdata
하고 .pdata
. . PUSHREG 앞에는 해제할 작업을 실제로 구현하는 지침이 있어야 합니다. 규약을 보장하기 위해 해제 지시문과 매크로에서 해제하려는 코드를 모두 래핑하는 것이 좋습니다.
레지스터 는 다음 중 하나일 수 있습니다.
RAX | RCX | RDX | RBX | RDI | RSI | RBP | R8 | R9 | R10 | R11 | R12 | R13 | R14 | R15.
자세한 내용은 x64용 MASM(ml64.exe)을 참조하세요.
Sample
설명
다음 샘플에서는 비휘발성 레지스터를 푸시하는 방법을 보여 줍니다.
코드
; 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