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 post med två registreringar med pop unwind-kod för det angivna registerparet med den aktuella förskjutningen i epilogen.
Syntax
. POP2REGregister1, register2
Parameters
register1
Det första registret som ska visas. Måste vara ett allmänt 64-bitarsregister.
register2
Det andra registret som ska visas. Måste vara ett allmänt 64-bitarsregister.
register1 och register2 kan var och en av följande vara:
RAX, RCX, RDX, RBX, RDI, RSI, RBP, R8, R9, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31.
Anmärkningar
Important
Detta direktiv är experimentellt och kan komma att ändras. Aktivera Varva ned version 3 med ml64.exe /unwindv3.
- . POP2REG är endast giltigt i Varva ned version 3. Det är epilogens motsvarighet till . PUSH2REG.
- . POP2REG tillåts endast inom en epilogregion, mellan . BEGINEPILOG och . ENDEPILOG.
- Dessa direktiv genererar varva ned metadata (
.xdataoch.pdataavsnitt) men producerar inte körbar kod. - I Varva ned version 3, . POP2REG måste visas före instruktionen som faktiskt implementerar åtgärden för att ångras.
- I Avspolning av version 3 är epilogdirektiv obligatoriska för kodgenerering av epiloger. Inga epilog-avrullningskoder genereras utan ett
.BEGINEPILOG/.ENDEPILOGpar. - För att säkerställa en överenskommelse omsluter du både avaktiveringsdirektiven och den kod som de är avsedda att varva ned i ett makro.
Om register1 och register2 är i följd och i ökande ordning genererar MASM en WOD_PUSH_CONSECUTIVE_2 avspolningskod. Annars genererar MASM en WOD_PUSH2 avspolningskod.
Note
I Varva ned version 1 visas direktivet efter motsvarande instruktion. I Varva ned version 3 visas direktivet före instruktionen.
Example
; ml64 /unwindv3 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
.push2reg rbx, rsi
push2 rbx, rsi
.push2reg r10, r11
push2 r10, r11
.endprolog
; rest of function ...
.beginepilog
.pop2reg r10, r11
pop2 r10, r11
.pop2reg rbx, rsi
pop2 rbx, rsi
.endepilog
ret
Example1 ENDP
_text ENDS
END
Se även
x64 Varva ned version 3 (experimentell)
Referens för direktiv
. PUSH2REG
. POPREG
. BEGINEPILOG
MASM BNF-grammatik