Простой код, приложение перестало работать - PullRequest
0 голосов
/ 08 марта 2011

Я начинаю изучать asm, используя fasm, к сожалению, после кода компиляции ниже я получаю сообщение об ошибке: «приложение перестало работать», я использую Win7 64bit Кто-нибудь знает, почему это не работает?

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

1 Ответ

4 голосов
/ 09 марта 2011

Может быть только один вызов библиотеки макроса. Ваш ExitProcess не импортируется и вызывает неправильный адрес. Поместите все в одну библиотеку вызов:

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