Fasm - Уроки Iczelion'а

Тема в разделе "WASM.BEGINNERS", создана пользователем Semiono, 6 авг 2008.

Метки:
  1. Semiono

    Semiono New Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    752
    Код (Text):
    1. ;Win32 API. Урок 2. MessageBox
    2. format PE GUI 5.0
    3.  
    4. include '%F%\win32ax.inc'
    5.  
    6. section '.idata' import data readable
    7.  
    8. library kernel32,'kernel32.dll',user32,'user32.dll'
    9.  
    10. import user32,\
    11.        MessageBox,'MessageBox'
    12. import kernel32,\
    13.        ExitProcess,'ExitProcess'
    14.  
    15. section '.data' data readable writeable
    16.  
    17. MsgBoxCaption  db "Iczelion Tutorial No.2",0
    18. MsgBoxText     db "Win32 Assembly is Great!",0
    19.  
    20. section '.code' code readable executable
    21.  
    22.         invoke MessageBox, NULL, addr MsgBoxText, addr MsgBoxCaption, MB_OK
    23.         invoke ExitProcess, NULL
    Не работает. Может быть надо MessageBoxA ?
    Как красивее написать код под Iczelion'а, особенно непонятки с оформлением секций ?
    Если зделать упрощённый вариант, то смысл уроков масм за этим вообще теряется! -

    Код (Text):
    1. include 'win32ax.inc'
    2.  
    3. .code
    4.  
    5.   start:
    6.         invoke  MessageBox,HWND_DESKTOP,"Hi! I'm the example program!","Win32 Assembly",MB_OK
    7.         invoke  ExitProcess,0
    8.  
    9. .end start
     
  2. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    Semiono
    Не работает.
    В чем это выражается?

    [offtop]
    Если зделать упрощённый вариант, то смысл уроков масм за этим вообще теряется!
    Afaik смысл и заключается в том, чтобы продемонстрировать, что программирование на языке ассемблера под windows тривиально.
    [/offtop]
     
  3. Semiono

    Semiono New Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    752
    MessageBox в модуле user32.dll похоже не существует.
    Репортирует сам эксешник. Из IDE запускается молча и нивидимо :)

    я просто не знаю как оформлять секции лучше, в примерах фасм там разные вариации...
    пока преткновение это сам фасм синтакс
     
  4. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    Код (Text):
    1. import user32,\
    2.        MessageBox,'MessageBoxA'
     
  5. Semiono

    Semiono New Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    752
    Fasm - Win32 API. Урок 2. MessageBox - wasm.ru/print.php?article=1001002
    Код (Text):
    1. format PE GUI 5.0
    2.  
    3. include '%F%\win32ax.inc'
    4.  
    5. MsgBoxCaption  db 'Iczelion Tutorial No.2',0
    6. MsgBoxText     db 'Win32 Assembly is Great!',0
    7.  
    8. start:
    9.         invoke MessageBox,NULL,MsgBoxText,MsgBoxCaption,MB_OK
    10.         invoke ExitProcess,NULL
    11. .end start
    Работает! Проблемма была в .end start метках...
    Забавно что импорты наоборот всё портят, а оформления секций в данном случае вообще игнорируются