Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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
.RESTOREREGreg, 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 (
.xdatae.pdatasezioni) ma non producono codice eseguibile. - In Rimozione versione 3,
.RESTOREREGdeve 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/.ENDEPILOGcoppia.
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