Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
WOD_SAVE_NONVOL Menghasilkan entri kode atau WOD_SAVE_NONVOL_FAR unwind untuk register dan offset yang ditentukan, menggunakan offset epilog saat ini.
Syntax
.RESTOREREGreg, offset
Parameter-parameternya
reg
Register nonvolatile untuk dipulihkan.
offset
Offset tumpukan tempat register dipulihkan.
Komentar
Important
Arahan ini bersifat eksperimental dan dapat berubah. Aktifkan Unwind Versi 3 dengan menggunakan ml64.exe /unwindv3.
.RESTOREREG hanya valid dalam Unwind Versi 3. Ini adalah rekan epilog untuk . SAVEREG.
Microsoft Assembler (MASM) memilih pengodean yang paling efisien untuk offset tertentu.
-
.RESTOREREGhanya diizinkan dalam wilayah epilog, antara . BEGINEPILOG dan . ENDEPILOG. - Arahan ini menghasilkan metadata unwind (
.xdatadan.pdatabagian) tetapi tidak menghasilkan kode yang dapat dieksekusi. - Di Unwind Versi 3,
.RESTOREREGharus muncul sebelum instruksi yang memuat register dari tumpukan. - Untuk memastikan perjanjian, bungkus arahan unwind dan kode yang dimaksudkan untuk melepas lelah dalam makro.
- Dalam Unwind Versi 3, arahan epilog wajib untuk pembuatan kode unwind epilog. Tidak ada kode epilog unwind yang dipancarkan tanpa sepasang
.BEGINEPILOG/.ENDEPILOG.
Nota
Di Unwind Versi 1, arahan muncul setelah instruksi yang sesuai. Di Unwind Versi 3, arahan muncul sebelum instruksi.
Contoh untuk unwindv3
; ml64 /unwindv3 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
.allocstack 020h
sub rsp, 020h
.savereg rbx, 0
mov [rsp], rbx
.savereg rsi, 8
mov [rsp+8], rsi
.endprolog
; rest of function ...
.beginepilog
.restorereg rsi, 8
mov rsi, [rsp+8]
.restorereg rbx, 0
mov rbx, [rsp]
.freestack 020h
add rsp, 020h
.endepilog
ret
Example1 ENDP
_text ENDS
END
Baca juga
x64 Unwind Versi 3 (eksperimental)
Referensi Arahan
. SAVEREG
. BEGINEPILOG
Tata Bahasa MASM BNF