Compartir a través de


.SETFRAME

Completa de cuadro información de desenredo mediante el registro especificado (reg) y el desplazamiento del registro el campo y el desplazamiento en (offset).El desplazamiento debe ser múltiplo de 16 y menor o igual que 240.Esta directiva también genera UWOP_SET_FPREG desenreda la entrada del registro especificado utilizando el desplazamiento actual de prólogo.

.SETFRAME reg, offset

Comentarios

.SETFRAME Permite a los usuarios de ml64.exe especifican cómo una función de cuadro desenredo, y sólo se permite en el prólogo, que extiende de declaración FRAME de PROCEDURE a la directiva de .ENDPROLOG .estas directivas no generan código; generan solo .xdata y .pdata..SETFRAME Deben ir precedidas por las instrucciones que implementan realmente acciones para ser desenrollado.Es aconsejable ajustar las directivas de desenredo y el código que está pensada desenrede en una macro para garantizar el contrato.

Para obtener más información, vea MASM para x64 (ml64.exe).

Ejemplo

2435h06y.collapse_all(es-es,VS.110).gifDescripción

El ejemplo siguiente se muestra cómo utilizar un puntero de marco:

2435h06y.collapse_all(es-es,VS.110).gifCódigo

; ml64 frmex2.asm /link /entry:frmex2 /SUBSYSTEM:CONSOLE
_text SEGMENT
frmex2 PROC FRAME
   push rbp
.pushreg rbp
   sub rsp, 010h
.allocstack 010h
   mov rbp, rsp
.setframe rbp, 0
.endprolog
   ; modify the stack pointer outside of the prologue (similar to alloca)
   sub rsp, 060h

   ; we can unwind from the following AV because of the frame pointer   
   mov rax, 0
   mov rax, [rax] ; AV!

   add rsp, 060h
   add rsp, 010h
   pop rbp
   ret
frmex2 ENDP
_text ENDS
END

Vea también

Otros recursos

Referencia de las directivas