. RESTOREREG

Genera una WOD_SAVE_NONVOL voce di codice di rimozione o WOD_SAVE_NONVOL_FAR per il registro e l'offset specificati utilizzando l'offset dell'epilogo corrente.

Sintassi

.RESTOREREG reg, offset

Parametri

reg
Registro non volatile da ripristinare.

offset
Offset dello stack da cui viene ripristinato il registro.

Osservazioni:

Importante

Questa direttiva è sperimentale ed è soggetta a modifiche. Abilitare la versione di rimozione 3 usando ml64.exe /unwindv3.

.RESTOREREG è valido solo in Rimozione versione 3. È l'epilogo controparte di . SAVEREG.

Microsoft Assembler (MASM) sceglie la codifica più efficiente per un determinato offset.

  • .RESTOREREG è consentito solo all'interno di un'area epilogo, tra . BEGINEPILOG e . ENDEPILOG.
  • Queste direttive generano metadati di rimozione (.xdata e .pdata sezioni) ma non producono codice eseguibile.
  • In Rimozione versione 3, .RESTOREREG deve essere visualizzato prima dell'istruzione che carica il registro dallo stack.
  • Per garantire il contratto, eseguire il wrapping di entrambe le direttive di rimozione e il codice da rimuovere in una macro.
  • In Rimozione versione 3, le direttive dell'epilogo sono obbligatorie per la generazione del codice di rimozione dell'epilogo. Nessun codice di rimozione dell'epilogo viene generato senza una .BEGINEPILOG/.ENDEPILOG coppia.

Note

In Rimozione versione 1 la direttiva viene visualizzata dopo l'istruzione corrispondente. In Rimozione versione 3 la direttiva viene visualizzata prima dell'istruzione.

Esempio di rimozionev3

; 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

Vedere anche

Versione di rimozione x64 3 (sperimentale)
Riferimento alle direttive
. SAVEREG
. BEGINEPILOG
Grammatica BNF MASM