. PUSH2REG

Genereert een pushcodevermelding met twee registraties voor het opgegeven registerpaar met behulp van de huidige offset in de proloog.

Syntaxis

.PUSH2REG register1, register2

Parameters

register1
Het eerste register dat moet worden gepusht. Moet een 64-bits 64-bits register voor algemeen gebruik zijn.

register2
Het tweede register dat moet worden gepusht. Moet een 64-bits 64-bits register voor algemeen gebruik zijn.

register1 en register2 kunnen elk 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

Important

Deze richtlijn is experimenteel en kan worden gewijzigd. Schakel versie 3 uit door gebruik te maken van ml64.exe /unwindv3.

  • Gebruik .PUSH2REG deze functie om op te geven hoe een framefunctie tot rust komt. U kunt deze richtlijn alleen gebruiken in de proloog, 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. In Afwikkelen versie 3 moet .PUSH2REG worden weergegeven voordat de instructie waarmee de actie daadwerkelijk wordt geïmplementeerd, wordt uitgevoerd. Om een overeenkomst te garanderen, is het een goede gewoonte om zowel de instructies voor het afwikkelen als de code die ze moeten afwikkelen in een macro te verpakken.
  • Als register1 en register2 opeenvolgend en in toenemende volgorde zijn, verzendt MASM een WOD_PUSH_CONSECUTIVE_2 afwikkelcode. Anders verzendt MASM een WOD_PUSH2 afwikkelcode.

Opmerking

In Relax versie 1 wordt de instructie weergegeven na de bijbehorende instructie. In Relax versie 3 wordt de instructie weergegeven vóór de instructie.

Voorbeeld voor relaxv3

; ml64 /unwindv3 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
   .push2reg r10, r11
   push2 r10, r11
   .push2reg rbx, rsi
   push2 rbx, rsi
.endprolog
   ; rest of function ...
   ret
Example1 ENDP
_text ENDS
END

Zie ook

x64 Versie 3 tot rust laten komen (experimenteel)
Naslaginformatie over richtlijnen
. POP2REG
. PUSHREG
. ENDPROLOG
MASM BNF-grammatica