.PUSHREG
UWOP_PUSH_NONVOL
Menghasilkan entri kode unwind untuk nomor register yang ditentukan menggunakan offset saat ini dalam prolog.
Sintaks
. Register PUSHREG
Keterangan
. PUSHREG memungkinkan pengguna ml64.exe menentukan bagaimana fungsi bingkai melepas lelah, dan hanya diizinkan dalam prolog, yang meluas dari deklarasi PROC FRAME ke . Direktif ENDPROLOG . Arahan ini tidak menghasilkan kode; mereka hanya menghasilkan .xdata
dan .pdata
. . PUSHREG harus didahului oleh instruksi yang benar-benar mengimplementasikan tindakan yang akan dibatalkan. Ini adalah praktik yang baik untuk membungkus arahan unwind dan kode yang dimaksudkan untuk bersantai dalam makro untuk memastikan perjanjian.
register mungkin salah satu dari:
RAX | RCX | RDX | RBX | RDI | RSI | RBP | R8 | R9 | R10 | R11 | R12 | R13 | R14 | R15.
Untuk informasi selengkapnya, lihat MASM untuk x64 (ml64.exe).
Sampel
Deskripsi
Sampel berikut menunjukkan cara mendorong register non-volatil.
Kode
; 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