Oharra
Baimena behar duzu orria atzitzeko. Direktorioetan saioa has dezakezu edo haiek alda ditzakezu.
Baimena behar duzu orria atzitzeko. Direktorioak alda ditzakezu.
Genera una entrada de código de desenredado UWOP_PUSH_MACHFRAME. Si especifica la palabra clave CODE opcional, la entrada de código de desenredado obtiene un modificador de 1. De lo contrario, el modificador es 0.
Sintaxis
.PUSHFRAME⟦CODE⟧ ;P rior to Unwind Version 3.PUSHFRAME⟦CODE⟧ | [0-255] ; Desenredado versión 3 específica
Comentarios
Use .PUSHFRAME con ml64.exe para especificar cómo se desenreda una función de marco. Solo se puede usar en el prólogo, que se extiende desde la declaración PROCFRAME a . Directiva ENDPROLOG .
- Estas directivas generan metadatos de desenredado (
.xdatay.pdatasecciones), pero no generan código ejecutable. - Precede con
.PUSHFRAMElas instrucciones que implementan las acciones que se van a desenlazar. - Para garantizar el acuerdo, encapsula las directivas de desenredado y el código que están diseñados para desenredar en una macro.
Comportamiento de desenredado versión 3
Importante
La compatibilidad con Desenredado versión 3 es experimental y está sujeta a cambios. Habilite mediante ml64.exe /unwindv3.
En Desenredado versión 3, .PUSHFRAME emite una WOD_PUSH_CANONICAL_FRAME entrada de código de desenredado.
Al especificar la palabra clave CODE opcional, el valor del modificador de entrada de código de desenredado es 1.
Si especifica un valor opcional, la directiva la usa directamente.
Si no pasa un argumento, el valor es 0. El valor debe estar en el intervalo de 0 a 255.
Nota: En Desenredar versión 1, las directivas vienen después de la instrucción . En Desenredado versión 3, las directivas vienen antes de la instrucción .
.PUSHFRAMEdebe aparecer antes de la instrucción que describe. Este comportamiento es el contrario de la versión 1, donde la directiva sigue la instrucción .
Ejemplo de desenredado3
; ml64 /unwindv3 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
.pushframe CODE
.endprolog
; interrupt handler body ...
iretq
Example1 ENDP
_text ENDS
END
El homólogo de epílogo es . POPFRAME.
Consulte también
x64 Desenredado versión 3 (experimental)
Referencia de directivas
. POPFRAME
Gramática BNF de MASM
MASM para x64 (ml64.exe)