Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menghasilkan entri kode pop unwind dua-register untuk pasangan register yang ditentukan menggunakan offset saat ini di epilog.
Syntax
. POP2REGregister1, register2
Parameter-parameternya
register1
Daftar pertama yang akan diisi. Harus merupakan register 64-bit tujuan umum.
register2
Register kedua yang akan muncul. Harus merupakan register 64-bit tujuan umum.
register1 dan register2 masing-masing dapat menjadi 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.
Komentar
Important
Arahan ini bersifat eksperimental dan dapat berubah. Aktifkan Unwind Versi 3 dengan ml64.exe /unwindv3.
- . POP2REG hanya valid di Unwind Versi 3. Ini adalah rekan epilog untuk . PUSH2REG.
- . POP2REG hanya diizinkan dalam wilayah epilog, antara . BEGINEPILOG dan . ENDEPILOG.
- Arahan ini menghasilkan metadata unwind (
.xdatadan.pdatabagian) tetapi tidak menghasilkan kode yang dapat dieksekusi. - Di Unwind Versi 3, . POP2REG harus muncul sebelum instruksi yang benar-benar mengimplementasikan tindakan untuk dilepas.
- Dalam Unwind Versi 3, arahan epilog wajib untuk pembuatan kode unwind epilog. Tidak ada kode epilog unwind yang dipancarkan tanpa sepasang
.BEGINEPILOG/.ENDEPILOG. - Untuk memastikan perjanjian, bungkus arahan unwind dan kode yang dimaksudkan untuk melepas lelah dalam makro.
Jika register1 dan register2 berturut-turut dan dalam urutan yang meningkat, MASM mengeluarkan kode unwind WOD_PUSH_CONSECUTIVE_2 . Jika tidak, MASM memancarkan kode unwind WOD_PUSH2 .
Note
Di Unwind Versi 1, arahan muncul setelah instruksi yang sesuai. Di Unwind Versi 3, arahan muncul sebelum instruksi.
Example
; ml64 /unwindv3 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
.push2reg rbx, rsi
push2 rbx, rsi
.push2reg r10, r11
push2 r10, r11
.endprolog
; rest of function ...
.beginepilog
.pop2reg r10, r11
pop2 r10, r11
.pop2reg rbx, rsi
pop2 rbx, rsi
.endepilog
ret
Example1 ENDP
_text ENDS
END
Baca juga
x64 Unwind Versi 3 (eksperimental)
Referensi Arahan
. PUSH2REG
. POPREG
. BEGINEPILOG
Tata Bahasa MASM BNF