default rel
section .text
extern MessageBoxA
handler:
sub rsp,40
mov rcx,0
lea rdx,[text]
lea r8,[caption]
mov r9,1 ; MB_OKCANCEL
call MessageBoxA
sub eax,1 ; incidentally suits as return value
; for exception handler
add rsp,40
ret
global main
main:
xor rax,rax
mov rax,QWORD[rax] ; cause exception
ret
main_end:
text: db 'OK to rethrow, CANCEL to generate core dump',0
caption:db 'SEGV',0
section .pdata rdata align=4
dd main wrt ..imagebase
dd main_end wrt ..imagebase
dd xmain wrt ..imagebase
section .xdata rdata align=8
xmain: db 9,0,0,0
dd handler wrt ..imagebase
section .drectve info
db '/defaultlib:user32.lib /defaultlib:msvcrt.lib'
nasm -f win64 file.s
//it generate obj file
link file.obj
//VC++ link the obj,generate exe file
来源:oschina
链接:https://my.oschina.net/u/4396922/blog/4543138