Маsm: макрос с параметрами

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

  1. psu

    psu New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2006
    Сообщения:
    198
    макрос на С

    #define IP_ADDR(s1,s2,s3,s4) ((s4<<24) + (s3<<16) + (s2<<8) + (s1))

    использую, например

    bla = IP_ADDR( 1, 2, 3, 4 )

    как такое написать на масме? чтобы использовать так

    MOV bla, IP_ADDR( 1,2,3,4 )

    или типа этого..
     
  2. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Код (Text):
    1. IP_ADDR macro a,b,c,d
    2.   exitm <((d shl 24) or (c shl 16) or (b shl 8) or a)>
    3. endm
     
  3. psu

    psu New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2006
    Сообщения:
    198
    Вот блин.. и я так писал, только через LOCAL переменную макроса.. Не работало, теперь пошлО, причем оба варианта
    Спасибо ;)
     
  4. psu

    psu New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2006
    Сообщения:
    198
    Еще вопрос

    есть строки вида
    Код (Text):
    1. mystr1 db "abcd 100 efgh", 0
    2. mystr2 db "qweqeq 100 cvn", 0
    Таких строк может быть много. Число во всех одно и то же. Можна ли определить макрос
    Код (Text):
    1. MY_NUMBER equ 100
    а в строках использовать этот макрос, а не число в явном виде? Неохота руками все строки менять, если будет нужно. То есть типа того

    Код (Text):
    1. mystr1 db "abcd ", SOME_MACROS MY_NUMBER, " efgh", 0
    2. mystr2 db "qweqeq ", SOME_MACROS MY_NUMBER, "cvn", 0
     
  5. KiNDeR

    KiNDeR New Member

    Публикаций:
    0
    Регистрация:
    13 июн 2003
    Сообщения:
    258
    Адрес:
    Russia
    MY_NUMBER equ "100"
    или
    MY_NUMBER equstr "100" ; вроде бы в MASM так
    или
    MY_NUMBER = "100"

    mystr1 db "abcd ", MY_NUMBER, " efgh", 0
    mystr2 db "qweqeq ", MY_NUMBER, "cvn", 0
     
  6. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    VERSION TEXTEQU <"1.2.2[private]">