. POPREG

Epilogue'daki geçerli uzaklığı kullanarak belirtilen yazmaç için bir WOD_PUSH geri sarma kodu girişi oluşturur.

Syntax

. POPREG kaydı

Parametreler

Kayıt yaptır
Açılacak kayıt. Genel amaçlı bir 64 bit yazmaç olmalıdır.

Remarks

Important

Bu yönerge deneyseldir ve değiştirilebilir. ml64.exeseçeneğini kullanarak /unwindv3 Sürüm 3'i Geri Al'a etkinleştirin.

.POPREG yalnızca Geri Sarma Sürüm 3'te geçerlidir. Bu, 'nin en önemli muadili . PUSHREG.

.POPREG arasında yalnızca en son bir bölgede izin verilir . BEGINEPILOG ve . ENDEPILOG. Bu yönergeler geri sarma meta verileri (.xdata ve .pdata bölümleri) oluşturur ancak yürütülebilir kod üretmez. Sürüm 3'te, .POPREG kayıt geri yüklemesini pop uygulayan yönergeden ö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.

register şu durumlardan biri olabilir:
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

Unwind Sürüm 3'te, epilogue unwind kod oluşturma için epilog yönergeleri zorunlu hale geldi. Derleyici, bir çift olmadan .BEGINEPILOG/.ENDEPILOG epilogue unwind kodları yaymaz.

Note

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

unwindv3 örneği

; ml64 /unwindv3 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
   .pushreg rbx
   push rbx
   .pushreg rsi
   push rsi
.endprolog
   ; rest of function ...
   .beginepilog
   .popreg rsi
   pop rsi
   .popreg rbx
   pop rbx
   .endepilog
   ret
Example1 ENDP
_text ENDS
END

Ayrıca bakınız

x64 Sürüm 3'i geri sarma (deneysel)
Yönergeler Başvurusu
. PUSHREG
. POP2REG
. BEGINEPILOG
MASM BNF Dil Bilgisi