Директива TEXTEQU

Тема в разделе "WASM.ASSEMBLER", создана пользователем Tupo, 21 янв 2005.

  1. Tupo

    Tupo New Member

    Публикаций:
    0
    Регистрация:
    21 янв 2005
    Сообщения:
    69
    Адрес:
    Moscow
    В доке Микрософта написано, что эта директива назначает текст имени, где текст может быть или символьной строкой, или результатом %, или строкой, возвращаемой макросом.



    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmas m/html/vclrf_masm_textequ.asp



    Усё перепробовал, всё одно пишет: "error A2051: text item required".



    Вот неработающий "пример":


    Код (Text):
    1. make_nbd        macro
    2.         EXITM   <offset szMake_nobody>
    3.         endm
    4.  
    5. MAKE_NOBODY textequ make_nbd




    Что не так делаю? :\
     
  2. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Если есть EXITM, то это не макрос, а макрофункция. В её вызове должны быть круглые скобки:


    Код (Text):
    1. make_nbd macro
    2.     EXITM <offset szMake_nobody>
    3. endm
    4.  
    5. MAKE_NOBODY textequ make_nbd()
    6.  
    7. .data
    8.     szMake_nobody db "nobody", 0
    9.  
    10. .code
    11.     invoke MessageBox, 0, MAKE_NOBODY, 0, 0
     
  3. Tupo

    Tupo New Member

    Публикаций:
    0
    Регистрация:
    21 янв 2005
    Сообщения:
    69
    Адрес:
    Moscow
    Спасибо!



    Мда, описаний макрофункции, что-то я нигде не встречал.

    Кроме скромной строки на микрософте:

    "Beginning with the Microsoft Macro Assembler (MASM) version 6.0, a macro can be written that will return either a text or numeric value. This is called a "Macro Function" and is implemented with the EXITM directive."



    Поэтому думал, что макрофункция и макрос имеют один и тот же формат.



    Что ж - буду устранять "пробел в образовании" :)



    Еще раз большое спасибо!
     
  4. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
  5. Tupo

    Tupo New Member

    Публикаций:
    0
    Регистрация:
    21 янв 2005
    Сообщения:
    69
    Адрес:
    Moscow
    Видел я её - много неточностей, сумбурная подача материала и местами недопустимые сокращения в повествовании. В общем - твердая троечка. ;)



    Лучше пользоваться qh



    Кстати, ответа на мой вопрос там тоже нету :Р