Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Genererar en WOD_SET_FPREG avspolningskodpost för det angivna registret och förskjutningen med den aktuella förskjutningen i epilogen.
Syntax
.UNSETFRAMEreg, offset
Parameters
reg
Bildrutepekaren registreras för att tas bort.
förskjutning
Förskjutningen till stackramen där rampekaren upprättades.
Anmärkningar
Important
Detta direktiv är experimentellt och kan komma att ändras. Aktivera Varva ned version 3 med ml64.exe /unwindv3.
.UNSETFRAME är endast giltigt i Avspolning version 3. Det är epilogens motsvarighet till . SETFRAME.
.UNSETFRAME tillåts endast inom en epilogregion, mellan . BEGINEPILOG och . ENDEPILOG. Dessa direktiv genererar varva ned metadata (.xdata och .pdata avsnitt) men producerar inte körbar kod.
I Varva ned version 3 .UNSETFRAME måste visas före instruktionen som återställer stackpekaren från bildrutepekarens register.
Det är en bra idé att omsluta både avaktiveringsdirektiven och koden som de är avsedda att varva ned i ett makro för att säkerställa en överenskommelse.
I Avspolning av version 3 är epilogdirektiv obligatoriska för kodgenerering av epiloger. Inga epilog-avrullningskoder genereras utan ett .BEGINEPILOG/.ENDEPILOG par.
Note
I Varva ned version 1 visas direktivet efter motsvarande instruktion. I Varva ned version 3 visas direktivet före instruktionen.
Exempel på avspolning 3
; ml64 /unwindv3 frmex2.asm /link /entry:frmex2 /SUBSYSTEM:CONSOLE
_text SEGMENT
frmex2 PROC FRAME
.pushreg rbp
push rbp
.allocstack 010h
sub rsp, 010h
.setframe rbp, 0
mov rbp, rsp
.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
.beginepilog
.unsetframe rbp, 0
mov rsp, rbp
.freestack 010h
add rsp, 010h
.popreg rbp
pop rbp
.endepilog
ret
frmex2 ENDP
_text ENDS
END
Se även
x64 Varva ned version 3 (experimentell)
Referens för direktiv
. SETFRAME
. BEGINEPILOG
MASM BNF-grammatik