Перейти к содержанию
    

Как передать в макрос переменную? ...

Как передать в макрос внутреннюю переменную i из другого макроса ?

Хочется из одного макроса вызвать другой макрос несколько раз с разным параметрами. Но IAR не воспринимает i как число, как параметр, а передает ее как букву "i"

 

tZond    MACRO
pZond\1:
        DS16    1
        ENDM

tZonds    MACRO
                LOCAL i
i        SET    0
        REPT    \1
        tZond   i
i        SET        i+1
        ENDR
        ENDM

tZonds       8

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В препроцессоре C используются символы # и ## для "упрятывания" значения переменной в строку.

Для ASM должно быть нечто подобное (или оноже). См. док.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 часов назад, k155la3 сказал:

В препроцессоре C используются символы # и ## для "упрятывания" значения переменной в строку.

Не значения переменной, а ее идентификатора.

#define TO_STR_MACRO(var) #var
...
printf(TO_STR_MACRO(var=) "%d", var);
...
printf(TO_STR_MACRO(var) "=%d", var);

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, Arlleex said:

Не значения переменной, а ее идентификатора.

Да, конечно. Значение появляется на этапе исполнения :)  

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...