Oharra
Baimena behar duzu orria atzitzeko. Direktorioetan saioa has dezakezu edo haiek alda ditzakezu.
Baimena behar duzu orria atzitzeko. Direktorioak alda ditzakezu.
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
.RESTOREREGreg, 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.
-
.RESTOREREGsolo se permite dentro de una región de epílogo, entre . BEGINEPILOG y . ENDEPILOG. - Estas directivas generan metadatos de desenredado (
.xdatay.pdatasecciones), pero no generan código ejecutable. - En Desenredado versión 3,
.RESTOREREGdebe 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/.ENDEPILOGpar.
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