nasm 汇编生成 windows 可执行文件

徘徊边缘 提交于 2020-10-03 20:45:50
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

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!