. RESTOREREG

Genera una WOD_SAVE_NONVOL entrada de código de desenredado o WOD_SAVE_NONVOL_FAR para el registro y desplazamiento especificados, utilizando el desplazamiento del epílogo actual.

Syntax

.RESTOREREG reg, offset

Parámetros

reg
Registro no volátil que se va a restaurar.

offset
Desplazamiento de pila desde el que se restaura el registro.

Observaciones

Importante

Esta directiva es experimental y está sujeta a cambios. Habilite Desenredado versión 3 mediante ml64.exe /unwindv3.

.RESTOREREG solo es válido en Desenredado versión 3. Es el homólogo del epílogo de . SAVEREG.

Microsoft Ensamblador (MASM) elige la codificación más eficaz para un desplazamiento determinado.

  • .RESTOREREG solo se permite dentro de una región de epílogo, entre . BEGINEPILOG y . ENDEPILOG.
  • Estas directivas generan metadatos de desenredado (.xdata y .pdata secciones), pero no generan código ejecutable.
  • En Desenredado versión 3, .RESTOREREG debe aparecer antes de la instrucción que carga el registro desde la pila.
  • Para garantizar el acuerdo, encapsula las directivas de desenredado y el código que están diseñados para desenredar en una macro.
  • En Desenredado versión 3, las directivas de epílogo son obligatorias para la generación de código de desenredado de epílogo. No se emiten códigos de desenredado de epílogo sin un .BEGINEPILOG/.ENDEPILOG par.

Note

En Desenredar versión 1, la directiva aparece después de la instrucción correspondiente. En Desenredar versión 3, la directiva aparece antes de la instrucción .

Ejemplo de desenredado3

; 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

Consulte también

x64 Desenredado versión 3 (experimental)
Referencia de directivas
. SAVEREG
. BEGINEPILOG
Gramática BNF de MASM