Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Genereert een UWOP_PUSH_NONVOL afwikkelcodevermelding voor het opgegeven registernummer met behulp van de huidige offset in de proloog.
Syntax
. PUSHREG-register
registratie kan een van de volgende zijn:
RAX, RCX, RDX, RBX, RDI, RSI, RBP, R8, R9, R10, R11, R12, R13, R14, R15
Wikkel versie 3 de registratieondersteuning uit om R16–R31 op te nemen.
registratie kan een van de volgende zijn:
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
Opmerkingen
Gebruik .PUSHREG deze functie ml64.exe om op te geven hoe een framefunctie tot rust komt. U kunt alleen in de proloog gebruiken .PUSHREG , die zich uitbreidt van de PROC-verklaringFRAME tot de . ENDPROLOG-richtlijn . Deze instructies genereren een ontspannen metagegevens (.xdata en .pdata secties), maar produceren geen uitvoerbare code. Ga vooraf aan .PUSHREG de instructies waarmee de acties daadwerkelijk worden geïmplementeerd. Om de overeenkomst te garanderen, verpakt u zowel de richtlijnen voor afwikkelen als de code die ze zijn bedoeld om in een macro tot rust te komen.
Code
In het volgende voorbeeld ziet u hoe u niet-compatibele registers pusht.
; ml64 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
push r10
.pushreg r10
push r15
.pushreg r15
push rbx
.pushreg rbx
push rsi
.pushreg rsi
.endprolog
; rest of function ...
ret
Example1 ENDP
_text ENDS
END
Gedrag van versie 3 tot rust laten komen
Important
Ondersteuning voor versie 3 is experimenteel en kan worden gewijzigd. Schakel het in met behulp van ml64.exe /unwindv3.
Note
In Relax versie 1 wordt de instructie weergegeven na de bijbehorende instructie. In Relax versie 3 wordt de instructie weergegeven vóór de instructie.
In Afwikkelen versie 3 genereert .PUSHREG u een WOD_PUSH afwikkelcodevermelding en moet worden weergegeven voordat de push reg instructies worden beschreven. Deze vereiste is het tegenovergestelde van versie 1, waarbij de richtlijn de instructie volgt.
Voorbeeld voor relaxv3
; ml64 /unwindv3 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
.pushreg r10
push r10
.pushreg r15
push r15
.pushreg rbx
push rbx
.pushreg rsi
push rsi
.endprolog
; rest of function ...
ret
Example1 ENDP
_text ENDS
END
De epiloog tegenhanger is . POPREG.
Zie ook
x64 Versie 3 tot rust laten komen (experimenteel)
Naslaginformatie over richtlijnen
MASM BNF-grammatica
MASM voor x64 (ml64.exe)