Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Generiert einen Codeeintrag mit zwei Registern für das angegebene Registerpaar mithilfe des aktuellen Offsets im Epilog.
Syntax
. POP2REGregister1, register2
Parameter
register1
Das erste Register zum Auffüllen. Muss ein allgemeines 64-Bit-Register sein.
register2
Das zweite Register zum Auffüllen. Muss ein allgemeines 64-Bit-Register sein.
register1 und register2 können jeweils eine der folgenden sein:
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.
Hinweise
Important
Diese Richtlinie ist experimentell und kann geändert werden. Aktivieren Sie die Abspannversion 3 mit ml64.exe /unwindv3.
- . POP2REG ist nur in Version 3 zum Entspannen gültig. Es ist das Epilog-Gegenstück zu . PUSH2REG.
- . POP2REG ist nur innerhalb einer Epilogregion zwischen . BEGINEPILOG und . ENDEPILOG.
- Diese Direktiven generieren entwendige Metadaten (
.xdataund.pdataAbschnitte), erzeugen jedoch keinen ausführbaren Code. - In Relax Version 3, . POP2REG muss vor der Anweisung angezeigt werden, die die Aktion tatsächlich implementiert, um entwundet zu werden.
- In "Relax Version 3" sind Epilogdirektiven für die Codegenerierung von Epilogen obligatorisch. Ohne Paar
.BEGINEPILOG/.ENDEPILOGwerden keine Epilog-Entlastungscodes ausgegeben. - Um eine Vereinbarung zu gewährleisten, schließen Sie sowohl die Entleer-Direktiven als auch den Code ein, den sie in einem Makro entspannen sollen.
Wenn register1 und register2 aufeinander folgenden und zunehmenden Reihenfolge entsprechen, gibt MASM einen Entspanncode aus WOD_PUSH_CONSECUTIVE_2 . Andernfalls gibt MASM einen WOD_PUSH2 Entspanncode aus.
Note
In Der Version 1 wird die Direktive nach der entsprechenden Anweisung angezeigt. In Der Version 3 wird die Direktive vor der Anweisung angezeigt.
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
Siehe auch
x64 Entspannen Version 3 (experimentell)
Direktivenreferenz
. PUSH2REG
. POPREG
. BEGINEPILOG
MASM BNF Grammatik