Macros (ы)

Тема в разделе "WASM.BEGINNERS", создана пользователем Perre, 18 май 2007.

  1. Perre

    Perre New Member

    Публикаций:
    0
    Регистрация:
    6 апр 2007
    Сообщения:
    100
    Опытные программеры подскажите, как правильно сделать макрос (надеюсь такими пользуются):
    Macros macro par1
    Если par1 не равно eax
    Mov eax,par1
    Конец если
    Call Procedura
    Endm

    Всётаки глупо оставлять команду mov eax,eax
    (пишу на масме)
     
  2. nitrotoluol

    nitrotoluol New Member

    Публикаций:
    0
    Регистрация:
    5 сен 2006
    Сообщения:
    848
    никак
    Макросы работают исключительно со статичными данными. Узнать значение еах макрос не может

    Либо я не понял, что ты хочешь сделать.
     
  3. Perre

    Perre New Member

    Публикаций:
    0
    Регистрация:
    6 апр 2007
    Сообщения:
    100
    nitrotoluol мне нужно, чтобы мой макрос вызывал процедуру «Procedura» и передавал ей параметр в регистре EAX, но когда я использую, макрос очень часто «par1» это регистр EAX
    1)пример: Macros EAX
    2)также могу: Macros 100
    Во втором случае код сформируется правильно
    Mov eax,100
    Call Procedura
    В первом будет так:
    Mov eax,eax
    Call Procedura
     
  4. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Код (Text):
    1. ts macro var
    2.     IFDIF <var>,<eax>
    3.         mov     eax,var
    4.     ENDIF
    5.     call    $
    6. endm
     
  5. Perre

    Perre New Member

    Публикаций:
    0
    Регистрация:
    6 апр 2007
    Сообщения:
    100
    IceStudent спасибо, я уже начал думать, что с такой проблемой не приходилось сталкиваться никому
     
  6. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    На сайте есть руководство по программированию макрoсов MASM by Edmond.