.POPREG

利用 WOD_PUSH 尾聲中的當前偏移產生指定暫存器的回轉碼條目。

Syntax

.POPREG 暫存器

參數

註冊
收銀機要彈開。 必須是通用的 64 位元暫存器。

備註

Important

此指令為實驗性質,且可能隨時變動。 請使用 /unwindv3 ml64.exe中的選項啟用 Unwind Version 3。

.POPREG 僅在 Unwind 版本 3 中有效。 它是 .PUSHREG。

.POPREG 僅允許在結語區域內,介於 之間。開始後記 與 。結尾。 這些指令會產生解開的元資料(.xdata 和 .pdata 區段),但不會產生可執行程式碼。 在 Unwind 版本 3 中,必須.POPREG出現在實作暫存器還原的指令之前pop。 為了確保一致,將解碼指令和它們要解開的程式碼都包裝成一個巨集。

登記 冊可能包括:
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

在 Unwind 版本 3 中,尾聲指令是產生尾聲解碼碼的強制性。 組譯器不會在沒有 .BEGINEPILOG/.ENDEPILOG 一對的組合檔時發出尾聲的解碼。

備註

在 Unwind 版本 1 中,指令會出現在對應指令之後。 在 Unwind 版本 3 中,指令出現 在指令之前 。

unwindv3 範例

; ml64 /unwindv3 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
   .pushreg rbx
   push rbx
   .pushreg rsi
   push rsi
.endprolog
   ; rest of function ...
   .beginepilog
   .popreg rsi
   pop rsi
   .popreg rbx
   pop rbx
   .endepilog
   ret
Example1 ENDP
_text ENDS
END

另請參閱

x64 Unwind 版本 3(實驗性)
指令參考
.普什雷格
.POP2REG
.開始後記
MASM BNF 文法