.PUSHFRAME

Menghasilkan entri kode unwind UWOP_PUSH_MACHFRAME . Jika Anda menentukan kata kunci CODE opsional, entri kode unwind mendapatkan pengubah 1. Jika tidak, pengubahnya adalah 0.

Sintaks

.PUSHFRAMECODE⟧ ;P rior to Unwind Version 3 .PUSHFRAMECODE⟧ | [0-255] ; Unwind Versi 3 spesifik

Keterangan

Gunakan .PUSHFRAME dengan ml64.exe untuk menentukan bagaimana fungsi bingkai melepas lelah. Anda hanya dapat menggunakannya dalam prolog, yang meluas dari deklarasi PROCFRAME ke . Direktif ENDPROLOG.

  • Arahan ini menghasilkan metadata unwind (.xdata dan .pdata bagian) tetapi tidak menghasilkan kode yang dapat dieksekusi.
  • Awali .PUSHFRAME dengan instruksi yang mengimplementasikan tindakan yang akan dibatalkan.
  • Untuk memastikan perjanjian, bungkus arahan unwind dan kode yang dimaksudkan untuk melepas lelah dalam makro.

Melepas penat perilaku Versi 3

Important

Dukungan Unwind Versi 3 bersifat eksperimental dan dapat berubah. Aktifkan dengan menggunakan ml64.exe /unwindv3.

Di Unwind Versi 3, .PUSHFRAME memancarkan entri kode unwind WOD_PUSH_CANONICAL_FRAME .
Saat Anda menentukan kata kunci CODE opsional, nilai pengubah entri kode unwind adalah 1.
Jika Anda menentukan nilai opsional, direktif akan menggunakannya secara langsung.
Jika Anda tidak meneruskan argumen, nilainya adalah 0. Nilai harus dalam rentang 0–255.

Catatan: Di Unwind Versi 1, arahan datang setelah instruksi. Di Unwind Versi 3, arahan datang sebelum instruksi. .PUSHFRAME harus muncul sebelum instruksi yang dijelaskannya. Perilaku ini adalah kebalikan dari Versi 1, di mana arahan mengikuti instruksi.

Contoh untuk unwindv3

; ml64 /unwindv3 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
   .pushframe CODE
.endprolog
   ; interrupt handler body ...
   iretq
Example1 ENDP
_text ENDS
END

Rekan epilog adalah . POPFRAME.

Lihat juga

x64 Unwind Versi 3 (eksperimental)
Referensi arahan
. POPFRAME
Tata Bahasa MASM BNF
MASM untuk x64 (ml64.exe)