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 unwind data (WOD) WOD_PUSH_CANONICAL_FRAME Windows di epilog.
Syntax
. POPFRAME ⟦CODE | value⟧
Parameter-parameternya
value
Pengubah numerik opsional dalam rentang 0–255.
Saling eksklusif dengan CODE. Jika Anda menentukan kata kunci CODE opsional, entri kode unwind menerima pengubah 1.
Jika Anda menentukan nilai numerik opsional sebagai gantinya, nilai tersebut akan menerima nilai yang ditentukan.
Jika Anda tidak meneruskan argumen, nilainya adalah 0.
Komentar
Important
Arahan ini bersifat eksperimental dan dapat berubah. Aktifkan Unwind Versi 3 dengan ml64.exe /unwindv3.
. Direktif POPFRAME memungkinkan ml64.exe pengguna menentukan bagaimana fungsi bingkai melepas lelah dalam epilog. Anda hanya dapat menggunakannya dalam wilayah epilog, antara . BEGINEPILOG dan . ENDEPILOG.
- . POPFRAME hanya valid di Unwind Versi 3. Ini adalah rekan epilog dari . PUSHFRAME. Nilai operand harus cocok dengan yang sesuai. PUSHFRAME dalam prolog.
- Di Unwind Versi 3, . POPFRAME harus muncul sebelum instruksi yang mengimplementasikan tindakan yang akan dibatalkan. Untuk memastikan perjanjian, bungkus arahan unwind dan kode yang dimaksudkan untuk melepas lelah dalam makro.
- Dalam Unwind Versi 3, arahan epilog wajib untuk pembuatan kode unwind epilog. Tidak ada kode epilog unwind yang dipancarkan tanpa sepasang
.BEGINEPILOG/.ENDEPILOG. - Arahan ini menghasilkan metadata unwind (
.xdatadan.pdatabagian) tetapi tidak menghasilkan kode yang dapat dieksekusi.
Note
Di Unwind Versi 1, arahan muncul setelah instruksi yang sesuai. Di Unwind Versi 3, arahan muncul sebelum instruksi.
Contoh untuk unwindv3
Contoh berikut menunjukkan cara menggunakan . POPFRAME dalam epilog untuk menunjukkan handler interupsi yang mendorong dan memunculkan bingkai mesin kanonis.
; ml64 /unwindv3 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
.pushframe
.pushreg rbx
push rbx
.allocstack 32
sub rsp, 32
.endprolog
; interrupt handler body ...
.beginepilog
.freestack 32
add rsp, 32
.popreg rbx
pop rbx
.popframe
.endepilog
iretq
Example1 ENDP
_text ENDS
END
Baca juga
x64 Unwind Versi 3 (eksperimental)
. PUSHFRAME
. BEGINEPILOG
. ENDEPILOG
Tata Bahasa MASM BNF