Bagikan melalui


.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

Lihat juga

Referensi arahan
Tata Bahasa MASM BNF