. POPREG

WOD_PUSH Menghasilkan entri kode unwind untuk register yang ditentukan menggunakan offset saat ini di epilog.

Syntax

. Daftar POPREG

Parameter-parameternya

Daftar
Daftar untuk muncul. Harus merupakan register 64-bit tujuan umum.

Komentar

Important

Arahan ini bersifat eksperimental dan dapat berubah. Aktifkan Unwind Versi 3 dengan menggunakan /unwindv3 opsi di ml64.exe.

.POPREG hanya valid dalam Unwind Versi 3. Ini adalah rekan epilog untuk . PUSHREG.

.POPREG hanya diizinkan dalam wilayah epilog, antara . BEGINEPILOG dan . ENDEPILOG. Arahan ini menghasilkan metadata unwind (.xdata dan .pdata bagian) tetapi tidak menghasilkan kode yang dapat dieksekusi. Di Unwind Versi 3, .POPREG harus muncul sebelumpop instruksi yang mengimplementasikan pemulihan register. Untuk memastikan perjanjian, bungkus arahan unwind dan kode yang dimaksudkan untuk melepas lelah dalam makro.

register mungkin salah satu dari:
RAX, RCX, RDX, RBX, RDI, RSI, RBP, R8, R9, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31

Dalam Unwind Versi 3, arahan epilog wajib untuk pembuatan kode unwind epilog. Perakitan tidak mengeluarkan kode unwind epilog tanpa sepasang .BEGINEPILOG/.ENDEPILOG .

Nota

Di Unwind Versi 1, arahan muncul setelah instruksi yang sesuai. Di Unwind Versi 3, arahan muncul sebelum instruksi.

Contoh untuk unwindv3

; ml64 /unwindv3 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
   .pushreg rbx
   push rbx
   .pushreg rsi
   push rsi
.endprolog
   ; rest of function ...
   .beginepilog
   .popreg rsi
   pop rsi
   .popreg rbx
   pop rbx
   .endepilog
   ret
Example1 ENDP
_text ENDS
END

Baca juga

x64 Unwind Versi 3 (eksperimental)
Referensi Arahan
. PUSHREG
. POP2REG
. BEGINEPILOG
Tata Bahasa MASM BNF