Путаница с макросом в МАСМ

Тема в разделе "WASM.ASSEMBLER", создана пользователем strain29A, 12 дек 2006.

  1. strain29A

    strain29A New Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2006
    Сообщения:
    4
    Тут такая путаница! точнее я запутался. как правильно сделать макрос, если:
    Костанта:
    CloseHandle_ equ [ebp-4*1]
    Макрос:
    call_ macro param
    call dword ptr %param
    endm
    Результат:
    call_ CloseHandle_
    не работает!!!
    В "Руководство по проектированию макросов в MASM32" не сильно такому вопросу пределяется внимание...
    естьу кого соображения??
    Зарание благодарен...
     
  2. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Мембер 29А запутался в макросе масма? Не верю :)
     
  3. strain29A

    strain29A New Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2006
    Сообщения:
    4
    Та я не мембер а начал с мануалов 29А!Но не ЛовинГод не Бени не Зомби не Вецна ни кто про это не писал! По этому если есть че по теме то выкладывай!
     
  4. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    strain29A
    Одессит?
    А конкретно что не работает? Вызов не проходит? Так может в [ebp-4] некорректный адрес.
     
  5. strain29A

    strain29A New Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2006
    Сообщения:
    4
    Та с адресом все ок! И с [ebp-4] тоже ок !Так вот работает:
    =========================

    call dword ptr CloseHandle_

    CloseHandle_ equ [ebp-4*1]
    =========================

    Я пытался чтото типа:
    =========================

    call_ CloseHandle_

    call_ macro param
    call dword ptr %param
    endm
    =========================

    Выдало:
    =========================
    error A2008: syntax error : call_
    =========================
    Да, и при чем тут "Одессит?"
    Твой вопрос больше похож на одесский умор...
     
  6. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    Код (Text):
    1. call_ macro param
    2. call dword ptr param ; процент убери ))))))))
    3. endm
    может им бы ещё инструкцию по использованию туалетной бумаги написать из 53 пунков
    и вот ещё если ты не мембер то писать их название у себя в нике неэтично, и не эротично
     
  7. strain29A

    strain29A New Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2006
    Сообщения:
    4
    Да, просто вспомнил хендлы ВЕЛИКИХ! Да, не причем они! Но речь тут какбы о макросах, пробывал я и без и с процентом! Но процент говорит о том, что я хочу взять значение определеное [за] дериктивой макроконстанты!
    А именно:
    =====================
    Имя Дериктива Значение
    _1 equ [ebp-4]
    =====================
    Блин, казалось бы простой вопрос! А не кто пока толком ниче не подсказал!! Да и я чето все уже перепробовал...
    Пока этот топ смахивает на топ посвященый флейму!
     
  8. krokus

    krokus New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2005
    Сообщения:
    11
    Адрес:
    Ukraine
    strain29A
    Попробуй так:
    Код (Text):
    1. call_ macro param
    2.     @CatStr(<call dword ptr >,<%param>)
    3. endm
     
  9. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Код (Text):
    1. call_ macro p1
    2. call dword ptr p1
    3. endm
    4.  
    5. MsgBox_ equ [ebp]
    6.  
    7. .data
    8.     MsgText db "This is simple MASM application", 0
    9.     MsgCapt db "Message", 0
    10. .code
    11. start:
    12.     push MessageBoxA
    13.     mov ebp, esp
    14.     xor ecx, ecx
    15.     push ecx
    16.     push offset MsgCapt
    17.     push offset MsgText
    18.     push ecx
    19.     call_ MsgBox_
    20.     pop eax
    21.     invoke ExitProcess, 0
    22. end start
    Всё работает.
    ml.exe 6.14.8444
    link.exe 5.12.8078
     
  10. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    strain29A
    Твоя фраза
    как-то по Одесски прозвучала :)