Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Epilogda bir WOD_PUSH_CANONICAL_FRAME Windows geri sarma verilerinin (WOD) geri sarma kodunun girişini oluşturur.
Syntax
öğesini seçin. POPFRAME ⟦CODE | 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/.ENDEPILOGhiçbir epilogue unwind kodu yayılmaz. - Bu yönergeler geri sarma meta verileri (
.xdatave.pdatabö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