Sdílet prostřednictvím


.SETFRAME

Vyplní rámeček registrovat unwind informace pomocí rejstříku určeného pole a posun (reg) a Protiúčet (offset).Offset musí být násobkem 16 a menší než 240.Tato směrnice také vygeneruje UWOP_SET_FPREG unwind kód položky pro určeného zaregistrovat pomocí aktuální posun prologu.

.SETFRAME reg, offset

Poznámky

.SETFRAME umožňuje uživatelům ml64.exe určit způsob rámečku funkce unwinds a je povolen pouze v rámci prologu, která sahá od PROC prohlášení RÁMEČEK .ENDPROLOG směrnice.Tyto direktivy generovat kód; pouze generovat .xdata a .pdata..SETFRAME by mělo předcházet pokyny, které skutečně provádět akce, které mají být unwound.Je vhodné unwind směrnic a kód, který mohou zajistit dohody jsou určeny k unwind v makru.

Další informace naleznete v tématu MASM pro x64 (ml64.exe).

Ukázka

Description

Následující příklad ukazuje použití rámců ukazatel:

Kód

; 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

Viz také

Další zdroje

Referenční dokumentace k direktivám