[an error occurred while processing this directive]
Специально для упертого повторяю
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено =AVR= 18 октября 2005 г. 00:20
В ответ на: AVRу (часть2) («Можно ли в ассемблере AVR Studio передавать параметры в макрос в виде выражений» ) отправлено <font color=gray>Доктор ТуамОсес</font> 17 октября 2005 г. 22:35

1. Любой мусор, который написан в строке после имени МАКРООПРЕДЕЛЕНИЯ, игнорируется в AVRASM1 и считается ошибкой в AVRASM2. Никакие "параметры" из этого мусора в макроопределение НЕ ПЕРЕДАЮТСЯ:

.macro DEMO foo1 << foo2 >> foo3 <== это мусор

2. Параметры передаются в тело макроконструкции при ее ВЫЗОВЕ и подставляются в ассемблерные команды БУКВАЛЬНО. На повторном проходе ассемблер пытается узреть в сконструированном таким образом тексте разрешенные синтаксические конструкции, и решить найденные там выражения (expressions), если таковые отвечают синтаксическим требованиям. Вот это есть ВЫЗОВ, но не ОПРЕДЕЛЕНИЕ макроконструкции:


DEMO (VALUE+10), (1 << FLAG1 + 0b01000000)

В итоге вместо @0 будет подставлен текст (VALUE+10), а вместо @1 - текст (1 << FLAG1 + 0b01000000).

3. Если текст не составил выражения, то он считается меткой (label) или числовой константой. И то, и другое, и третье проверяется на валидность и решается - строковое числовое выражение преобразуется в двоичные данные соответствующего типа (byte, word, double), метка - в назначенный или ранее вычисленный ее численный эквивалент. Полученный результат подставляется в соответствующие поля очередного слова програмной памяти и ассемблер переходит на обработку следующей строки.

4. НЕ НАДО МНЕ ПИЗДЕТЬ! Мега603 - это отбраковка Меги103 с половиной Flash и RAM, и единственная инструкция, которая не имеет смысла в М603, хотя и существует, и поддерживается, и выполняется - это ELPM, т.к. для Flash M603 достаточно 16-ти бит LPM. А инструкция STS там есть, о чем написано прямо на стр.123 документа по ссылке. Прчитай, тщательно перепиши фломастером себе на лоб и с чувством выполненного долга ступай... в народ

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru