Assembly 简单代码,应用程序已停止工作

Assembly 简单代码,应用程序已停止工作,assembly,fasm,Assembly,Fasm,我开始使用fasm学习asm,不幸的是,在编译下面的代码后,我得到错误:“应用程序已停止工作”,我使用Win7 64位。有人知道为什么它不起作用吗 format PE Console 4.0 include 'win32a.inc' push MB_OK push _tresc push _tytul push 0 call [MessageBoxA] push 0 call [ExitProcess] mov eax,0 ret _tytul db "Tytul",0 _tresc

我开始使用fasm学习asm,不幸的是,在编译下面的代码后,我得到错误:“应用程序已停止工作”,我使用Win7 64位。有人知道为什么它不起作用吗

format PE Console 4.0
include 'win32a.inc'

push MB_OK
push _tresc
push _tytul
push 0
call [MessageBoxA]

push 0
call [ExitProcess]

mov eax,0
ret

_tytul  db "Tytul",0
_tresc  db "Hello world :)",0

data import
    library user32,'USER32.DLL'
    library kernel32,'KERNEL32.DLL'
    import user32,\
        MessageBoxA,'MessageBoxA'
    import kernel32,\
        ExitProcess,'ExitProcess'
end data

只能有一个宏调用。您的ExitProcess未被导入并调用错误的地址。将所有内容放在一个库中调用:

data import
    library user32,'USER32.DLL',kernel32,'KERNEL32.DLL'
    import user32,MessageBoxA,'MessageBoxA'
    import kernel32,ExitProcess,'ExitProcess'
end data

只能有一个宏调用。您的ExitProcess未被导入并调用错误的地址。将所有内容放在一个库中调用:

data import
    library user32,'USER32.DLL',kernel32,'KERNEL32.DLL'
    import user32,MessageBoxA,'MessageBoxA'
    import kernel32,ExitProcess,'ExitProcess'
end data

这不是错误,但如果
\u tytul
是窗口的标题,则必须交换
push\u tytul
push\u tresc
。这不是错误,但如果
\u tytul
是窗口的标题,则必须交换
push\u tytul
push\u tresc