.SETFRAME

Füllt das Feld und den Offset in den Entladeinformationen mit dem angegebenen Register (reg) und den Offset des Rahmens registers aus (offset).Der Offset muss ein Vielfaches von 16 und kleiner oder gleich 240 sein.Diese Direktive UWOP_SET_FPREG Entladecode generiert außerdem einen Eintrag für das angegebene Register mithilfe des aktuellen Offset vorläufige.

.SETFRAME reg, offset

Hinweise

.SETFRAME ml64.exe-Benutzern kann, um anzugeben wie Entladungen eine Rahmenfunktion und ist nur innerhalb des Prologs zugelassen, die von der Deklaration PROC FRAME auf .ENDPROLOG-Direktive erstreckt.Diese Direktive kein Code generiert. generieren und .xdata nur .pdata..SETFRAME sollte von den Anweisungen vorangestellt werden, die eigentlich selbst implementieren die Aktionen zu entladen.Es empfiehlt sich, die Entladungs Direktiven und den Code umschlossen werden, die sie impliziert werden, die in einem Makro entladen, um Vertrags sicherzustellen.

Weitere Informationen finden Sie unter MASM für x64 (ml64.exe).

Beispiel

2435h06y.collapse_all(de-de,VS.110).gifBeschreibung

Das folgende Beispiel zeigt, wie Sie einen Framezeiger verwendet:

2435h06y.collapse_all(de-de,VS.110).gifCode

; 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

Siehe auch

Weitere Ressourcen

Direktivenreferenz