利用 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