объявление процедур в fasm

Тема в разделе "WASM.BEGINNERS", создана пользователем horpis, 24 сен 2006.

  1. horpis

    horpis New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2006
    Сообщения:
    154
    это строчка из мануала
    proc WindowProc,hwnd,wmsg,wparam,lparam

    а это из \EXAMPLES\DIALOG.asm
    proc DialogProc hwnddlg,msg,wparam,lparam

    предыдущее я пытаюсь повторить:
    proc Stuf_p,msg:lol: WORD,wParam:lol: WORD,\
    lParam:lol: WORD
    msg equ dword ptr [ebp+0Ch]
    wParam equ dword ptr [ebp+10h]
    lParam equ ptr [ebp+14h]
    push ebx

    но fasm говорит:"Illegal instruction"

    то ли лыжи не едут то ли я тормуз, подскажите:)
     
  2. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Что ты хочешь сделать? Зачем equ dword ptr? Да и ptr нет в фасме.
    Код (Text):
    1. proc some hWnd,uMsg,wp,lp
    2. mov  eax,[hWnd]
     
  3. horpis

    horpis New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2006
    Сообщения:
    154
    так тоже пробовал - не помогает

    Код (Text):
    1. format PE GUI 4.0
    2. entry start
    3. include 'reds.inc'
    4.  
    5. section '.data' data readable writeable
    6.         hwnddlg dd      ?
    7.         hwnd    dd      ?
    8.         msg     dd      ?
    9.         wParam  dd      ?
    10.         lParam  dd      ?
    11.  
    12.   start:
    13.    ;     push ebx
    14.   ;     push 0
    15.         invoke GetModuleHandle,0
    16.         mov [hinst], eax
    17.         invoke DialogBoxParam, eax,37,HWND_DESKTOP,Stuf_p,0
    18.         mov [hwnddlg], eax
    19.         add eax, 1
    20.         test eax,eax
    21.         jz exit
    22.   exit:
    23.         invoke ExitProcess, 0
    24. proc  Stuf_p,hwnd,msg,wParam,lParam
    25. hwnd equ [ebp+08h]
    26. msg equ dword [ebp+0Ch]
    27. wParam equ dword [ebp+10h]
    28. lParam equ [ebp+14h]
    29.         mov eax,[hwnd]
    30.         push ebx
    31.         push esi
    32.         push edi
    33.         cmp [msg],WM_INITDIALOG
    34.         je initd_m
    35.         cmp [msg], WMC_COMMAND
    36.         je command_m
    37. initd_m:
    38.         invoke CheckRadioButton, [hwnddlg],ID_ICONERROR,ID_ICONWARNING,ICONINFORMATION
    39.         jmp proccesed_m
    40. command_m:
    41.         cmp [wParam], BN_CLICKED, shl 16 + IDCANSEL
    42.         je close_m
    43.         cmp [wParam], BN_CLICKED shl 16 + IDOK
    44.         jne proccesed_m
    45. close_m:
    46.         invoke EndDialog,[hwnddlg],0
    47. proccesed_m:
    48.         mov eax,1
    49. finish_m:
    50.         pop edi
    51.         pop esi
    52.         pop ebx
    53. endp
    54.  
    55. section '.idata' import data readble writeable
    56.         library kernel, 'KERNEL32.DLL',\
    57.                 user, 'USER32.DLL'
    58.        
    59.         import kernel,\
    60.                 GetModuleHandle, 'GetModuleHandleA'
    61.  
    62. section '.rsrc' resource data readble
    63.         directory RT_DIALOG,dialogs
    64.         resource dialogs,\
    65.           37,LANG_ENGLISH+SUBLANG_DEFAULT,demonstration
    66.         dialog demonstration, 'Test', 70, 70, 190, 175, WS_CAOTION+WS_POPUP+\
    67.           WS_SYSMENU+DS_MADODALFRAME
    68.             dialogitem 'BUTTON', '&On hotkey',-1, 100,70,80,70,WS_VISIBLE+WS_GROUPBOX
    69.             dialogitem 'EDIT','',ID_CAPTION,10,10,70,8,WS_VISIBLE
    70.             dialogitem 'BUTTON','OK',IDOK,85,150,45,15,WS_VISIBLE+WS_TABSTOP+\
    71.               BS_DEFPUSHBUTTION
    72.             dialogitem 'BUTTON','C&ancel',IDCANCEL,135,150,15,15,WS_VISIBLE+\
    73.               WS_TABSTOP+BS_DEFPUSHBUTTON
    74.         enddialog
     
  4. horpis

    horpis New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2006
    Сообщения:
    154
    вот черт нет чтоб топики посмотреть:)
     
  5. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    horpis
    Ну зачем тебе wParam equ dword [ebp+10h]?
     
  6. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    horpis
    Код (Text):
    1. hwnd equ [ebp+08h]
    2. msg equ dword [ebp+0Ch]
    3. wParam equ dword [ebp+10h]
    4. lParam equ [ebp+14h]
    Удали это, ты же объяснил что у тебя 4 параметра. И как они называются.