|
Макросы в AVRASM/AVRASM2 и других ASM, Можно ли опираться на макро-средства ассемблеров для AVR |
|
|
|
Jun 30 2010, 05:53
|
Участник

Группа: Участник
Сообщений: 35
Регистрация: 27-10-06
Пользователь №: 21 715

|
Наверное уже не первый кто спрашивает но поиск не дал результатов.
Можно ли в макрокомандах имеющихся для AVR ассемблеров использовать неопределенное кол-во параметров. Можно ли средствами макрокоманд AVRASM2 проверить переданный в макроопределение параметр по принципу есть\нет или меньше больше, если переданный параметр не константа (адрес, порт) а регистр. Может быть уже существует реализация команды push списком push_list ZH, ZL, YL, YH, R0 и т.д.?
|
|
|
|
|
 |
Ответов
|
Jun 30 2010, 11:19
|
Местный
  
Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527

|
Цитата(SAAl @ Jun 30 2010, 09:53)  Можно ли средствами макрокоманд AVRASM2 проверить переданный в макроопределение параметр по принципу есть\нет или меньше больше, если переданный параметр не константа (адрес, порт) а регистр. Все макросы работают на этапе компиляции/ассемблирования. Так что с не константами ничего не получится. Проверяйте внутри макроса, но эта проверка уже будет идти в рантайме и соответственно расходовать память и время.
|
|
|
|
|
Jul 1 2010, 16:33
|
Участник

Группа: Участник
Сообщений: 35
Регистрация: 27-10-06
Пользователь №: 21 715

|
Цитата(Qwertty @ Jun 30 2010, 17:19)  Все макросы работают на этапе компиляции/ассемблирования. Так что с не константами ничего не получится. Проверяйте внутри макроса, но эта проверка уже будет идти в рантайме и соответственно расходовать память и время. В тело макросов регистры должны попадать в виде чего? Литеральные константы? Вряд ли так как при передаче в макрос они разименовываются пролетев все def-ы. Не очевидно, но регистр фактически адрес и передавать его в виде константы после разименовывания логично. r0 - 0, r1 -1 и т.д. Но при попытке проверить его макросредствами .if получаем ошибку. #if в AVRASM2 принимает, но результат сравнения не зависит от переданного параметра, что совсем уже не понятно.
Сообщение отредактировал SAAl - Jul 1 2010, 16:38
|
|
|
|
Сообщений в этой теме
SAAl Макросы в AVRASM/AVRASM2 и других ASM Jun 30 2010, 05:53 Artem_Petrik Насчет AVRASM2 не скажу (когда меня волновал анало... Jun 30 2010, 11:01  ReAl Цитата(SAAl @ Jul 1 2010, 19:33) #if в AV... Jul 6 2010, 12:12   _Bill Цитата(ReAl @ Jul 6 2010, 16:12) Для AVR ... Jul 11 2010, 18:11 Deka Число параметров для одного макроса фиксированное ... Jul 5 2010, 12:41 SAAl Цитата(Deka @ Jul 5 2010, 18:41) Число па... Jul 6 2010, 02:00 adc Дело в том что передаваемые макросу параметры стро... Jul 6 2010, 06:48 Artem_Petrik 2 SAAL:
Что-то быстро найти нормальное описание av... Jul 6 2010, 09:29 SAAl Цитата(Artem_Petrik @ Jul 6 2010, 15:29) ... Jul 7 2010, 12:11  Artem_Petrik Цитата(SAAl @ Jul 7 2010, 15:11) Описание... Jul 7 2010, 17:51   ReAl Цитата(Artem_Petrik @ Jul 7 2010, 20:51) ... Jul 7 2010, 20:11   SAAl Цитата(Artem_Petrik @ Jul 7 2010, 23:51) ... Jul 8 2010, 03:40 Exstreem Верно, на пустоту не проверить.
Макрос в асме, как... Jul 7 2010, 12:24 SAAl Цитата(Exstreem @ Jul 7 2010, 18:24) Верн... Jul 7 2010, 13:14 Deka Я бы тоже не отказался от помощи прикручивания к с... Jul 8 2010, 09:54 Exstreem Код ассемблировался:
.MACRO Pushl
.if @0<31
... Jul 8 2010, 14:49 Exstreem В прошлом сообщении допустил ошибку:
вместо
Цитата... Jul 8 2010, 18:13 SAAl Цитата(Exstreem @ Jul 9 2010, 00:13) В пр... Jul 9 2010, 02:55 Exstreem Да, конечно, пробовал, поэтому и выложил.
Ассембли... Jul 9 2010, 04:56 SAAl Цитата(Exstreem @ Jul 9 2010, 10:56) Да, ... Jul 9 2010, 05:16 Exstreem Цитатавот код который "компилится":
Код
... Jul 9 2010, 05:51 SAAl Цитата(Exstreem @ Jul 9 2010, 11:51) Ошик... Jul 9 2010, 07:00 Exstreem ЦитатаХитрость ясна, однако тоже полумера согласны... Jul 9 2010, 07:39 ILYAUL А SREG ? Jul 10 2010, 07:13 Exstreem Один из вариантов:
Код.MACRO Pushl
.if @0<=31
... Jul 10 2010, 16:29
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|