Урок №8 Iczelion'а в FASM'е

Тема в разделе "WASM.BEGINNERS", создана пользователем AssemblerIA64, 22 май 2008.

  1. AssemblerIA64

    AssemblerIA64 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2007
    Сообщения:
    160
    Вот не понимаю в чём дело.
    Код (Text):
    1. ...
    2. include 'win32ax.inc'
    3. ...
    4.  
    5. IDM_10   = 10
    6. IDM_11   = 11
    7. IDM_12   = 12
    8. IDM_13   = 13
    9. IDM_21   = 21
    10. IDM_30   = 30
    11.  
    12. section '.rsrc' resource data readable
    13.  
    14.   directory RT_MENU, menus
    15.  
    16.   resource menus,\
    17.            37, LANG_ENGLISH + SUBLANG_DEFAULT, main_menu
    18.  
    19.   menu main_menu
    20.        menuitem 'A',IDM_10,MFR_POPUP
    21.                 menuitem 'A : A',IDM_11
    22.                 menuitem 'A : B',IDM_12
    23.                 menuseparator
    24.                 menuitem 'A : C',IDM_13,MFR_END
    25.        menuitem 'B',IDM_20,MFR_POPUP
    26.                 menuitem 'B : A',IDM_21,MFR_END
    27.        menuitem 'C',IDM_30,MFR_POPUP+MFR_END
    На этот код FASM отвечает ошибкой:
    [​IMG].
    Подскажите, пожалуйста, почему так? Спасибо.
     
  2. zet

    zet New Member

    Публикаций:
    0
    Регистрация:
    15 окт 2007
    Сообщения:
    121
    Может
    Код (Text):
    1.  menuitem 'C',IDM_30,MFR_END
     
  3. DEEP

    DEEP Андрей

    Публикаций:
    0
    Регистрация:
    27 апр 2008
    Сообщения:
    491
    Адрес:
    г. Владимир
    А на это ли он ругается? где тот самый undefined symbol 'size?Pl' ? ИМХО, не там проблему ищете.
    ЗЫ: может, надо так - size?, Pl
    ъ?
     
  4. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Ээ, это макрос фасмовский стандартный, а не код топикстартера..
     
  5. DEEP

    DEEP Андрей

    Публикаций:
    0
    Регистрация:
    27 апр 2008
    Сообщения:
    491
    Адрес:
    г. Владимир
    А, тады простите... В фасме, увы, ни бельмеса :dntknw:
    Но тогда почему сам фасм лично ругается на свои макросы?
     
  6. zet

    zet New Member

    Публикаций:
    0
    Регистрация:
    15 окт 2007
    Сообщения:
    121
    А вообще все эти туторы давно переведены.

    Код (Text):
    1. format PE GUI 4.0
    2. entry start
    3.  
    4. include '%fasminc%\win32wx.inc'
    5.  
    6. IDR_MENU    = 100
    7. IDM_FILE    = 101
    8. IDM_NEW     = 102
    9. IDM_EXIT    = 103
    10. IDM_WINDOW  = 104
    11. IDM_TILEHOR = 105
    12. IDM_TILEVER = 106
    13. IDM_CASCADE = 107
    14.  
    15. ;================================================================================[DATA]====
    16. section '.data' data readable writeable
    17.  
    18.     wTitle     TCHAR 'Iczelion Tutorial No.8',0
    19.     wClsName   TCHAR 'TUT08',0
    20.     wMsg       MSG
    21.     wCls       WNDCLASS
    22.     wHMain     dd   ?
    23.     wHInstance dd   ?
    24.  
    25.  
    26. ;================================================================================[CODE]====
    27. section '.code' code readable executable
    28.  
    29. start:
    30.  
    31.   ; registering the window class
    32.     invoke  GetModuleHandle, 0
    33.     mov     [wHInstance], eax
    34.     mov     [wCls.hInstance], eax
    35.     mov     [wCls.style], CS_HREDRAW or CS_VREDRAW
    36.     mov     [wCls.lpfnWndProc], window_procedure
    37.     mov     [wCls.lpszClassName], wClsName
    38.     mov     [wCls.hbrBackground], COLOR_BTNFACE+1
    39.     invoke  LoadIcon, NULL, IDI_APPLICATION
    40.     mov     [wCls.hIcon], eax
    41.     invoke  LoadCursor, NULL, IDC_ARROW
    42.     mov     [wCls.hCursor], eax
    43.     invoke  RegisterClass, wCls
    44.     invoke  LoadMenu, [wHInstance], IDR_MENU
    45.  
    46.   ; creating the main window
    47.     invoke  CreateWindowEx, 0, wClsName, wTitle,\
    48.         WS_OVERLAPPEDWINDOW + WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT,\
    49.         CW_USEDEFAULT, CW_USEDEFAULT, NULL, eax, [wHInstance], NULL
    50.     mov     [wHMain], eax
    51.  
    52.   ; entering the message loop
    53. window_message_loop_start:
    54.     invoke  GetMessage, wMsg, NULL, 0, 0
    55.     or      eax, eax
    56.     je      window_message_loop_end
    57.     invoke  TranslateMessage, wMsg
    58.     invoke  DispatchMessage, wMsg
    59.     jmp     window_message_loop_start
    60. window_message_loop_end:
    61.     invoke  ExitProcess, 0
    62.  
    63.  
    64. ;----------------------------------------------------------------<the window procedure>----
    65. proc window_procedure uses ebx esi edi, hWnd, uMsg, wParam, lParam
    66.  
    67.     mov     eax, [uMsg]
    68.     cmp     eax, WM_COMMAND
    69.     je      .wmCOMMAND
    70.     cmp     eax, WM_DESTROY
    71.     je      .wmDESTROY
    72.  
    73. .wmDEFAULT:
    74.     invoke  DefWindowProc, [hWnd], [uMsg], [wParam], [lParam]
    75.     jmp     .exit
    76.  
    77. .wmCOMMAND:
    78.  
    79.     jmp     .exit
    80.  
    81. .wmDESTROY:
    82.     invoke  PostQuitMessage, 0
    83.  
    84. .exit:
    85.     ret
    86. endp
    87. ;----------------------------------------------------------------<the window procedure>----
    88.  
    89.  
    90. ;===============================================================================[IDATA]====
    91. section '.idata' import data readable
    92.  
    93.     library kernel32, 'KERNEL32.DLL',\
    94.         user32,   'USER32.DLL'
    95.  
    96.     include '%fasminc%\api\kernel32.inc'
    97.     include '%fasminc%\api\user32.inc'
    98.  
    99.  
    100. ;================================================================================[RSRC]====
    101. section '.rsrc' resource data readable
    102.  
    103.     directory RT_MENU,appMenu
    104.  
    105.     resource  appMenu,\
    106.           IDR_MENU,LANG_ENGLISH,MainMenu
    107.  
    108.     menu MainMenu
    109.     menuitem          '&File'           ,IDM_FILE    ,MFR_POPUP
    110.         menuitem      '&New'            ,IDM_NEW     ,MFT_STRING
    111.         menuseparator
    112.         menuitem      '&Exit'           ,IDM_EXIT    ,MFR_END
    113.     menuitem          '&Window'         ,IDM_WINDOW  ,MFR_POPUP
    114.         menuitem      'Tile Horizontal' ,IDM_TILEHOR ,MFT_STRING
    115.         menuitem      'Tile Vertical'   ,IDM_TILEVER ,MFT_STRING
    116.         menuitem      'Cascade'         ,IDM_CASCADE ,MFR_END
    117.     menuitem          '&Exit'           ,IDM_EXIT    ,MFR_END
    118.  
    119. ;==========================================================================================
     
  7. dmitry501

    dmitry501 New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2007
    Сообщения:
    4
    А ссылочкой не поделитесь?
     
  8. Aquila

    Aquila Самурай дзена

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    1.467
    Адрес:
    Russia, Moscow
    Переведённые на FASM? Действительно, не поделишься ли ссылкой на эти туторы, а то у меня в СПРС стоит ремастеринг туториалов Iczelion'а и есть идея показывать там код для нескольких компиляторов.
     
  9. zet

    zet New Member

    Публикаций:
    0
    Регистрация:
    15 окт 2007
    Сообщения:
    121
  10. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    Aquila
    А я на GoAsm перевел и сейчас на очереди NASM и YASM :)