. RESTOREREG

Génère une ou une WOD_SAVE_NONVOLWOD_SAVE_NONVOL_FAR entrée de code de déroulement pour le registre et le décalage spécifiés, à l’aide du décalage d’épilogue actuel.

Syntaxe

.RESTOREREG reg, offset

Paramètres

reg
Registre nonvolatile à restaurer.

Compenser
Décalage de pile à partir duquel le registre est restauré.

Remarques

Important

Cette directive est expérimentale et peut être modifiée. Activez Le déroulement de la version 3 à l’aide ml64.exe /unwindv3de .

.RESTOREREG est valide uniquement dans Unwind Version 3. C’est l’épilogue équivalent à . SAVEREG.

Microsoft Assembleur (MASM) choisit l’encodage le plus efficace pour un décalage donné.

  • .RESTOREREG est autorisé uniquement dans une région épilogue, entre . BEGINEPILOG et . ENDEPILOG.
  • Ces directives génèrent des métadonnées de déroulement (.xdata et .pdata des sections) mais ne produisent pas de code exécutable.
  • Dans Unwind Version 3, .RESTOREREG doit apparaître avant l’instruction qui charge le registre à partir de la pile.
  • Pour garantir l’accord, incluez à la fois les directives de déroulement et le code qu’ils sont destinés à décompresser dans une macro.
  • Dans Unwind Version 3, les directives d’épilogue sont obligatoires pour la génération de code de déroulement d’épilogue. Aucun code de déroulement d’épilogue n’est émis sans .BEGINEPILOG/.ENDEPILOG paire.

Note

Dans Unwind Version 1, la directive apparaît après l’instruction correspondante. Dans Unwind Version 3, la directive apparaît avant l’instruction.

Exemple de déroulement3

; 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

Voir aussi

x64 Unwind Version 3 (expérimentale)
Informations de référence sur les directives
. SAVEREG
. BEGINEPILOG
Grammaire MASM BNF