Передача параметра в макрос на Fasm

Тема в разделе "WASM.ASSEMBLER", создана пользователем t00x, 23 май 2009.

  1. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    есть макрос:
    Код (Text):
    1. macro SET set_name, [arg_bits]
    в качестве параметров [arg_bits] передаются отдельные числа. можно ли передать в качестве параметра диапазон значений (например "[10..15]")?
     
  2. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    t00x
    передай, в чем проблема))
    SET xxx, [10..15]

    macro SET set_name, [arg_bits] { common
    match [ begin =.=. end ],arg_bits \{
    ...
    \}
    }
     
  3. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    GoldFinch
    т.е. match используется для сравнения и разбора подстроки одновременно? o_O

    а можно диапазон [begin..end] по одному значению дописать к списку [arg_bits] ? =)
     
  4. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    поменял формат [A..B] на A--B, потому что ругается компилятор.
     
  5. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    ещё такой вопрос.
    Код (Text):
    1. macro SET set_name, [arg_bits]
    как избавиться от ошибки при пустом [arg_bits]?
     
  6. Quatre_R_Winner

    Quatre_R_Winner Member

    Публикаций:
    0
    Регистрация:
    10 ноя 2008
    Сообщения:
    66
    Можно сделать несколько match'ей для разных форм вызова макроса. Что-то вроде:
    Код (Text):
    1. match [ begin =.=. end ],arg_bits \{
    2.     ...
    3.   \}
    4. match [],arg_bits \{
    5.     ...
    6.   \}
    Примеры такого подхода можно найти в стандартных инклюдах к фасму, в реализации поддержки синтаксиса масма.