. POPFRAME

Epilogda bir WOD_PUSH_CANONICAL_FRAME Windows geri sarma verilerinin (WOD) geri sarma kodunun girişini oluşturur.

Syntax

öğesini seçin. POPFRAMECODE | değeri

Parametreler

değer
0-255 aralığında isteğe bağlı bir sayısal değiştirici.
CODE ile birbirini dışlar. İsteğe bağlı CODE anahtar sözcüğünü belirtirseniz, geri sarma kodu girdisi 1 değiştiricisini alır.
Bunun yerine isteğe bağlı bir sayısal değer belirtirseniz, belirtilen değeri alır.
Bağımsız değişken geçirmezseniz, değer 0 olur.

Remarks

Important

Bu yönerge deneyseldir ve değiştirilebilir. sürüm 3'i ile ml64.exe /unwindv3geri sarmayı etkinleştirin.

. POPFRAME yönergesi, kullanıcıların bir çerçeve işlevinin bir epilogda nasıl gevşeyeceğini belirtmesini sağlarml64.exe. Bunu yalnızca arasında bir kapsam bölgesi içinde kullanabilirsiniz . BEGINEPILOG ve . ENDEPILOG.

  • öğesini seçin. POPFRAME yalnızca Geri Sarma Sürüm 3'te geçerlidir. bu, öğesinin epilog karşılığıdır . PUSHFRAME. İşlenen değeri karşılık gelen ile eşleşmelidir . Prologda PUSHFRAME .
  • Sürüm 3'te, . POPFRAME , eylemi uygulayan yönergenin kaldırılabilmesi için önce görünmelidir. Sözleşmeyi güvence altına almak için hem unwind yönergelerini hem de bir makroda geri sarmalamaları gereken kodu sarmalayın.
  • Unwind Sürüm 3'te, epilogue unwind kod oluşturma için epilog yönergeleri zorunlu hale geldi. Bir çift olmadan .BEGINEPILOG/.ENDEPILOG hiçbir epilogue unwind kodu yayılmaz.
  • Bu yönergeler geri sarma meta verileri (.xdata ve .pdata bölümleri) oluşturur ancak yürütülebilir kod üretmez.

Note

Sürüm 1'i Geri Al bölümünde yönergeler ilgili yönergeden sonra görünür. Sürüm 3'te yönergeler yönergeden önce görünür.

unwindv3 örneği

Aşağıdaki örnekte nasıl kullanılacağı gösterilmektedir . Kurallı makine çerçevesini göndererek açılan kesme işleyicisini göstermek için bir özetteki POPFRAME.

; 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

Ayrıca bakınız

x64 Sürüm 3'i geri sarma (deneysel)
. PUSHFRAME
. BEGINEPILOG
. ENDEPILOG
MASM BNF Dil Bilgisi