fasm (macro iglobal + macro uglobal)

Тема в разделе "WASM.HEAP", создана пользователем keYMax, 11 дек 2007.

  1. keYMax

    keYMax New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2003
    Сообщения:
    276
    Адрес:
    Новоуральск
    Макросы для объявления данных в любом месте листинга (как в masm). Думаю все знакомы. Когда вышла версия фасма 1.62 их правили для работы с ней, ответ был на flatassembler.net. Поставил последнюю версию фасма, полез в старые проекты, макросы нужно снова подгонять ибо не работают должным образом.

    Может быть есть у кого то уже рабочий вариант?
     
  2. iZzz32

    iZzz32 Sergey Sfeli

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    355
    keYMax, это что ли?
    Код (Text):
    1. endb fix }
    2.  
    3. macro atblock name*
    4. {
    5.   local m
    6.   name equ name,m
    7.   macro m
    8.   \{
    9. }
    10.  
    11. macro block name*
    12. {
    13.   macro name _,[sm]
    14.   \{
    15.       sm
    16.       purge sm
    17.       restore name
    18.   \}
    19.   match e , name \{ e \}
    20.   purge name
    21. }
     
  3. keYMax

    keYMax New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2003
    Сообщения:
    276
    Адрес:
    Новоуральск
    iZzz32
    почти

    В общем я разобрался. Старый вариант до изменения снова работает )

    от 2005 года
    Код (Text):
    1. macro iglobal { IGlobals equ IGlobals,
    2.                 macro __IGlobalBlock { }
    3.  
    4. macro uglobal { UGlobals equ UGlobals,
    5.                 macro __UGlobalBlock { }
    6.  
    7. endg fix }
    8.  
    9. macro IncludeIGlobals { macro IGlobals dummy,[n] \{ __IGlobalBlock
    10.                                                     purge __IGlobalBlock \}
    11.                         match I, IGlobals \{ I \} }
    12.  
    13.  
    14. macro IncludeUGlobals { macro UGlobals dummy,[n] \{ \common \local begin, size
    15.                                                      begin = $
    16.                                                      virtual at $
    17.                                                     \forward
    18.                                                      __UGlobalBlock
    19.                                                      purge __UGlobalBlock
    20.                                                     \common
    21.                                                      size = $ - begin
    22.                                                      end virtual
    23.                                                      rb size \}
    24.                         match U, UGlobals \{ U \} }
    25.  
    26. macro IncludeAllGlobals { IncludeIGlobals
    27.                           IncludeUGlobals }