. RESTOREREG

Geçerli en son uzaklığı kullanarak belirtilen yazmaç ve uzaklık için bir WOD_SAVE_NONVOL veya bir WOD_SAVE_NONVOL_FAR geri sarma kodu girişi oluşturur.

Syntax

.RESTOREREG reg, offset

Parametreler

reg
Geri yüklemek için kalıcı olmayan kayıt.

fark
Yazmaç geri yüklendiği yığın uzaklığı.

Remarks

Important

Bu yönerge deneyseldir ve değiştirilebilir. kullanarak ml64.exe /unwindv3Sürüm 3'e geri sarmayı etkinleştirin.

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

Microsoft Assembler (MASM), belirli bir uzaklık için en verimli kodlamayı seçer.

  • .RESTOREREG 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, .RESTOREREG yığından yazmaç yükleyen 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.
  • 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.

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
   .allocstack 020h
   sub rsp, 020h
   .savereg rbx, 0
   mov [rsp], rbx
   .savereg rsi, 8
   mov [rsp+8], rsi
.endprolog
   ; rest of function ...
   .beginepilog
   .restorereg rsi, 8
   mov rsi, [rsp+8]
   .restorereg rbx, 0
   mov rbx, [rsp]
   .freestack 020h
   add rsp, 020h
   .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
. SAVEREG
. BEGINEPILOG
MASM BNF Dil Bilgisi