.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