Ассемблер (ASM) для AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
trofim2
Встал на лапы
Сообщения: 106
Зарегистрирован: Чт сен 10, 2015 06:59:03
Откуда: Гродно, BY

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение trofim2 »

Локальные метки только в макросах?
А в основном теле программы?
dimmer
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Сб сен 17, 2016 18:56:30

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение dimmer »

Как известно при подаче питания, или после сброса аппаратно производится инициализация РВВ начальными значениями ( большая часть - нулём). Ваше мнение: нужно ли при конфигурации портов ВВ, записывать нули туда, где вроде-бы уже должен быть ноль? Например, если произошел сбой в программе и был осуществлён сброс по собачьему таймеру, или по коричневому детектору. (ATmega, ATtiny)
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Z_h_e »

trofim2 писал(а): в основном теле программы?
Это как? Что Вы имеете ввиду?
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
trofim2
Встал на лапы
Сообщения: 106
Зарегистрирован: Чт сен 10, 2015 06:59:03
Откуда: Гродно, BY

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение trofim2 »

Я имею ввиду не в макросах.
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Z_h_e »

Объясните что Вы имеете ввиду под локальной меткой в основном теле. Как Вы хотите ее применять?
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
trofim2
Встал на лапы
Сообщения: 106
Зарегистрирован: Чт сен 10, 2015 06:59:03
Откуда: Гродно, BY

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение trofim2 »

Область действия локальных меток ограничена глобальными метками.
Пример:
Label_1:
.......
@@1:
.......
Label_2:
.......
@@1:
........
Label_3:
Т.е. первая локальная метка @@1 действительна только в зоне между Label_1 и Label_2,
вторая - между Label_2 и Label_3 .
За пределами до Label_1 и после Label_3 метки с именем @@1 не существует.

"@@" - признак локальной метки.
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Z_h_e »

А какая необходимость этого?
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
trofim2
Встал на лапы
Сообщения: 106
Зарегистрирован: Чт сен 10, 2015 06:59:03
Откуда: Гродно, BY

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение trofim2 »

Нет необходимости писать длинные метки в процедурах и библиотеках.
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Z_h_e »

Теперь поясните что есть длинная метка?
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Аватара пользователя
Starichok51
Модератор
Сообщения: 19043
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Starichok51 »

trofim2 писал(а):Нет необходимости писать длинные метки
у каждой метки должно быть осмысленное имя, по которому понятно, что под ней делается.
а такая запись
@@1:
ничего осмысленного не несет, и через некоторое время и сам забудешь, что под этой меткой делается....
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
trofim2
Встал на лапы
Сообщения: 106
Зарегистрирован: Чт сен 10, 2015 06:59:03
Откуда: Гродно, BY

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение trofim2 »

Во многих случаях локальные метки оправданы.
К примеру конструкция
"rjmp PC+смещение"
заменяется на
rjmp @@1
..........
@@1:
........
и позволяет вставлять/удалять команды не заботясь о смещении.
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Z_h_e »

trofim2 писал(а):и позволяет вставлять/удалять команды не заботясь о смещении.
Именно для этого метки и придуманы, чтобы не заботится. Я так понимаю, что Вам влом менять имена меток, когда копируете код, ну для этого как раз макросы и существуют. Думаю другого способа нет.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Аватара пользователя
Andrew Martin
Вымогатель припоя
Сообщения: 606
Зарегистрирован: Вт июн 25, 2013 18:45:07

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Andrew Martin »

Польза от локальных меток неоспорима, поскольку в пределах проекта может существовать сколько угодно локальных меток с одинаковыми именами. Это позволяет не нагромождать длинные имена меток. И потом не приходится заморачиваться с именами при копипасте. Очень удобно для ближних меток.

Код: Выделить всё

funcname_1:

          cpi     r16,0
          brge   @@1
          neg    r16
    @@1:

funcname_2:

          cpi     r16,0
          brge   @@1
          neg    r16
    @@1:






Вот простой пример взятия модуля числа. Такая конструкция может быть использована без каких-либо переделок в любом числе функций одного и того же проекта.
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Z_h_e »

Ваш пример рабочий? Как компилятор узнает зону ответственности метки?

Для Вашего примера любой доктор пропишет макрос.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Аватара пользователя
ptr128
Вымогатель припоя
Сообщения: 606
Зарегистрирован: Чт окт 06, 2016 21:12:07
Откуда: Южное Бутово

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ptr128 »

Andrew Martin писал(а):Польза от локальных меток неоспорима, поскольку в пределах проекта может существовать сколько угодно локальных меток с одинаковыми именами. Это позволяет не нагромождать длинные имена меток.

То же самое достижимо, если не пытаться впихнуть весь проект в один файл исходного кода. Если у Вас каждый файл исходного кода содержит только один функциональный блок кода, длиной не более, чем в сотню строк, то и проблем с метками у Вас не будет. Дайте возможность компоновщику потрудиться )
Не ошибается только то, кто ничего не делает.
Тот, кто признает свои ошибки, на них учится.
Глупец же, упорствуя в своих заблуждениях, остается глупцом.
trofim2
Встал на лапы
Сообщения: 106
Зарегистрирован: Чт сен 10, 2015 06:59:03
Откуда: Гродно, BY

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение trofim2 »

Так компоновщика нет.
Аватара пользователя
ptr128
Вымогатель припоя
Сообщения: 606
Зарегистрирован: Чт окт 06, 2016 21:12:07
Откуда: Южное Бутово

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ptr128 »

Ну так используйте для AVR GNU Toolchain. Там компоновщик точно есть.
Не ошибается только то, кто ничего не делает.
Тот, кто признает свои ошибки, на них учится.
Глупец же, упорствуя в своих заблуждениях, остается глупцом.
trofim2
Встал на лапы
Сообщения: 106
Зарегистрирован: Чт сен 10, 2015 06:59:03
Откуда: Гродно, BY

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение trofim2 »

Сколько пробовал, ничего не получается.
Нет сенсея, чтобы на пальцах показал, как им пользоваться.
Аватара пользователя
ptr128
Вымогатель припоя
Сообщения: 606
Зарегистрирован: Чт окт 06, 2016 21:12:07
Откуда: Южное Бутово

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ptr128 »

Ну не знаю. Под Eclipse для включения в проект ассемблера в *.S файлах, вообще никаких дополнителых телодвижений не требуется, кроме изначальной настройки CDT и AVR Eclipse Plugin.
Не ошибается только то, кто ничего не делает.
Тот, кто признает свои ошибки, на них учится.
Глупец же, упорствуя в своих заблуждениях, остается глупцом.
trofim2
Встал на лапы
Сообщения: 106
Зарегистрирован: Чт сен 10, 2015 06:59:03
Откуда: Гродно, BY

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение trofim2 »

Я же просил на пальцах.
Ответить

Вернуться в «AVR»