Например TDA7294

Форум РадиоКот • Просмотр темы - Ассемблер (ASM) для AVR в вопросах и ответах
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Ср сен 10, 2025 01:44:06

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 7956 ]     ... , , , 394, , , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт дек 12, 2024 16:12:38 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15153
Откуда: ДОНЕЦК
Рейтинг сообщения: 2
Предочистка используемых программой регистров РОН и ОЗУ это обязательная стандартная процедура - но её исполнение зависит от конкретных требований программы.
Кроме того требуется привести в начальное состояние и некоторые из регистров спец функций (зависит от аппаратной начинки кристалла и статуса содержимого как при включении питания, так и при всех видах перезапуска устройства).
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт дек 12, 2024 17:43:38 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2922
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18804
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
shonty писал(а):
Это если не обращаться к данным во флэше
тут я тоже делаю хитро.
во флеши у меня тоже есть данные - небольшие таблицы и несколько строковых данных (имена параметров для вывода их на экран). все эти данные у меня находятся в начале флеши, чтобы для доступа к ним ZH тоже был равен нулю. поэтому и для ОЗУ и для данных во флеши мне достаточно загрузить адрес только в ZL.
BOB51 писал(а):
Нуль можно и в варианте константы определить.
константу ты в команду СРС не поставишь.
shonty писал(а):
все регистры в ноль
нет в этом необходимости, я делаю очистку только тех регистров, которые на старте программы долны быть равны нулю. а их у меня обычно не так уж много.
BOB51 писал(а):
Предочистка используемых программой регистров РОН и ОЗУ это обязательная стандартная процедура
я выше только что сказал, что это и нахер не нужно делать. очистить только то, что должно быть "чистым".

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт дек 12, 2024 18:01:45 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2119
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18408
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Это хорошо, если используется модель АВР.
Но ведь возможно и иное переназначение регистров файла под наиболее удобную модель распределения регистров...
это все таки "чистый ассемблер".
К примеру тот же "быстрый стек" под отдельные подпрограммы в младшей части регистрового банка...
:roll:

Чистых ассемблеров не бывает, все прибиты гвоздями к архитектуре.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт дек 12, 2024 18:07:28 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15153
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Имелась ввиду разница между GNU-adsembler( :oops: )под GCC и avrasm без Си
8)
Касательно архитектуры - ядро то остаётся АВРкино, но стиль использования регистров регистрового файла может заметно отличаться при разных базовых моделях.
У нас ведь не один аккумулятор как "по классике", а всё из имеющихся с полным функционалом. Да ещё и столько же " чуток ограниченных в возможностях применения" - именно в том и особенность МК, которой очень редко пользуются.
(Или вообще не замечают).
:wink:
Насчёт CPC... Зависит от контекста - по функционалу у
СРС Rd, Rd имеем rd-rr-c но Rd сохранён неизменным
И
SBCI Rd, k при Rd=rd-k-c, где к =0-255, но Rd будет изменён по результату. Да сама команда работает только с R31-R16...
При том флаги установятся одинаково.
:roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт дек 12, 2024 19:22:09 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2922
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18804
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
BOB51 писал(а):
СРС Rd, Rd
ты указал команду с регистром, а не с константой. а СРС, как я уже сказал, с константой не работает.
а пример SBCI не актуален - буква "I" явно указывает работу с константой.

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт дек 12, 2024 19:34:08 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15153
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Есть то и CPI Rd, k , но в ней не учитывается флаг C .
Собственно аналогия CP Rd, Rr и CPI Rd, k... Ошибка исправлена. :wink:
CPC дополнительно учитывает предыдущее состояние флага С - ежли таковое критично, то ближайшей неполной аналогией можно считать SBCI при учете того, что она и содержимое регистра изменить может, если С=1 при константе =0, а СРС только по флагам пройдется.
:roll:
Интересненько однако...
Код:
LDI R16,0
REPS:
SEC
SBCI R16,0
RJMP REPS

... и что будет?... надо посмотрямс из спортивна интересу...
:?

Ага, получилось R16 = 0хFF при С=1
а последующий шаг с 0xFF в R16 дал R16 = 0xFE и С = 0...
:roll:


Последний раз редактировалось BOB51 Пт дек 13, 2024 16:54:16, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт дек 12, 2024 20:12:05 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2119
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18408
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Имелась ввиду разница между GNU-adsembler( :oops: )под GCC и avrasm без Си
8)
Касательно архитектуры - ядро то остаётся АВРкино, но стиль использования регистров регистрового файла может заметно отличаться при разных базовых моделях.

я и говорю - не надо отличий без необходимости от того, что принято в GCC. если вы выработаете привычку делать свои ассемблерные штуки по соглашениям, принятым в GCC, вам потом будет элементарно оформить их в нужном стиле - чисто косметические правки, алгоритм не будет затронут, - и использовать их в проекте на Си. и другим будет полезнее. какой регистр вы задефайните под константу НОЛЬ - принципиально вам разницы нет, но для "совместимости" лучше выбрать регистр R1, как в GCC. А R0, если я не ошибаюсь, применять как временный операнд, т.е. регистр, значение которого в любой момент может быть испорчено без последствий. ну и остальное тоже... я могу напутать, поэтому лучше изучить соответствующие доки на предмет "кошерного" назначения регистров.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт дек 12, 2024 20:33:38 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15153
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Так это вопрос совместимости с GCC - если в таком смысле, конечно удобнее для транзитных работ по стандартным схемам с использованием одного аккумулятора. Да и фокусы со стеком GCC явно не допускает.
А вот в прикладном плане для ассемблерных проектов это не факт...
Если только в самом GCC подобный подход не закладывался.
:dont_know:
К примеру можно запустить несколько абсолютно автономно вертящихся задач на основе прерываний и аппаратных ресурсов. При условии, что у основной программы доступ ко всем псевдоавтономным через массив данных и флаги в ОЗУ.
К примеру контроллер динамической индикациии кнопок на одном из таймеров и приемепередатчик плюс программа обработки.
Понятно, что все выполняется последовательно во времени через единое АЛУ, но каждый "самостоятельный" модуль имеет свой независимый набор регистр-аккумуляторов, а общее ОЗУ уже как бы в режиме ПДП для этих модулей (через механизм флагов запросов/квитирования).
Собственно как вариант использования ресурсов вполне возможно...
Или несколько критичных регистров при прерывании хранить на в обычном стеке
push/pop, а использовать альтернативный блок регистров с помощью movw...
:roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт дек 12, 2024 21:16:01 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2119
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18408
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Вам надо сделать словарик вашего слэнга, потому что понять вас выше моих сил... Какие стеки, какие аккумуляторы, почему индивидуальные?! Чем меньше извращений, тем проще, удобнее и понятнее, а если совместимо с чем-то другим - вдвойне хорошо.

Но дело, конечно, ваше... Avrasm настолько убогое говнище, что я вообще не понимаю, зачем его использовать, если есть avr-as, часть тулчейна avr-gcc. Даже древний 51-й ассемблер на пару порядков удобнее и мощнее... Гнутый асм ничем не хуже, уверяю вас!

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт дек 12, 2024 21:22:13 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15153
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Это точно... (насчёт слэнга)...
Увы... Порой в том проблемы - так я ж и не возражаю...
8)
Относительно компилятора...
Каждый надо заново прорабатывать.
По традиции (и начальной широкой доступности в любительской практике) базовыми были avrasm от аврстудии, c51asm от той же атмел и mpasm от микрощипьего мплаба - вот я из них и слепил "нечто усредненное" по употреблению.
Это правда не исключает и менее распространённых на сегодня, но "устаревших" для "старой классики" (580/Z80).
А вот дальше уже таки сложнее - время своё берёт...
(со склерозом в компании)
:beer:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт дек 13, 2024 06:52:04 
Мучитель микросхем
Аватар пользователя

Карма: 1
Рейтинг сообщений: 39
Зарегистрирован: Ср янв 11, 2012 18:20:26
Сообщений: 473
Рейтинг сообщения: 0
ARV писал(а):
Но дело, конечно, ваше... Avrasm настолько убогое говнище, что я вообще не понимаю, зачем его использовать, если есть avr-as, часть тулчейна avr-gcc.
Дело привычки. Да и мотивации особой нет пересаживаться на что-то другое :dont_know:

А потом.. мнений много.. но все субъективны :dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт дек 13, 2024 07:49:23 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2922
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18804
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
BOB51, а ты из спортивна интересу попробуй в исходнике написать CPI Rd, Rr. и посмотри, что тебе на это скажет компилятор.
это будет гораздо интереснее, чем проверять работу SBCI...

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт дек 13, 2024 09:54:34 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 130
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1247
Рейтинг сообщения: 0
Это точно... (насчёт слэнга)...
Увы... Порой в том проблемы - так я ж и не возражаю...
8)

И не только. Много букв. Я вообще пролистываю твои сообщения, считая старческим жужжанием. Извини.)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт дек 13, 2024 10:13:59 
Потрогал лапой паяльник
Аватар пользователя

Карма: 4
Рейтинг сообщений: 99
Зарегистрирован: Вс окт 25, 2020 22:13:25
Сообщений: 327
Откуда: Смоленск
Рейтинг сообщения: 0
Starichok51 писал(а):
что тебе на это скажет компилятор

Компилятор, которым я пользуюсь, говорит следующее:

Error ==> cpi r16, r17
007: Undefined constant, variable, label or device (R17)!

Error ==> cpi r1, r17
017: Register value (1) out of range (R16..R31)!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт дек 13, 2024 11:39:43 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15153
Откуда: ДОНЕЦК
Рейтинг сообщения: 1
BOB51, а ты из спортивна интересу попробуй в исходнике написать CPI Rd, Rr. и посмотри, что тебе на это скажет компилятор.
это будет гораздо интереснее, чем проверять работу SBCI...


А зачем делать то, что в систему команд не заложено ?...
:shock:
Команды CPI Rd, Rr в системе команд AVR не существует - какой смысл ее обсуждать то?
Вложение:
AVR-InstructionSet-Manual-DS40002198B.pdf [1.18 MiB]
Скачиваний: 30

:dont_know:
Другое дело макрос с такими параметрами создать и использовать - это не возбраняется.
А порой даже весьма эффективно (особо с учетом перенаименования регистров).
:hunger:

OKF
Я спросил - интересно кому - выложу "на посмотреть", не интересно - удаляюсь в свою котуинку (тем более там это все уже было).
Смысла то повторяться никакого нету - каждый делает то, что дает необходимый ему результат с теми ресурсами, которые ему доступны.
:beer:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт дек 13, 2024 12:13:46 
Мучитель микросхем
Аватар пользователя

Карма: 1
Рейтинг сообщений: 39
Зарегистрирован: Ср янв 11, 2012 18:20:26
Сообщений: 473
Рейтинг сообщения: 0
shonty писал(а):
все регистры в ноль
нет в этом необходимости, я делаю очистку только тех регистров, которые на старте программы долны быть равны нулю. а их у меня обычно не так уж много.
Да так и есть.. Очистка регистров, рАвно как и очистка ОЗУ - один из необязательных "ритуалов" ))

Но я обращаюсь к этому коду, когда забываю как работать с регистрами как с памятью. :)))

По поводу "слэнга". Так вроде мы все тут художники свободные.. Кому-то пейзажи, кому-то натюрморты.. ну а кто-то экзотическими направлениями балуется.. Что ж с того :dont_know:

:beer:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт дек 13, 2024 12:30:38 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 169
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 516
Рейтинг сообщения: 0
ARV писал(а):
Avrasm настолько убогое говнище, что я вообще не понимаю, зачем его использовать, если есть avr-as, часть тулчейна avr-gcc. ... Гнутый асм ничем не хуже, уверяю вас!
Роман, простите мою глупость, но как могут отличаться ассемблеры для одной платформы? Система ж команд одинаковая... Или вы имеете ввиду мощность и плюшки препроцессора?
(про себя скажу, что писала на чистом асме в четвертой авр-студии, когда изучала архитектуру АВРок. Потом уже седьмая студия и ассемблерные вставки в Си. На голом асме давно не пишу.)

_________________
Белая и Пушистая


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт дек 13, 2024 12:56:57 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15153
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Язык - в смысле системы команд не отличается.
А вот компиляторы по своему правописанию и возможностям могут весьма сильно отличаться даже без всякого "отношения к Си"...
По крайней мере я с тремя вариантами для 51й весьма плотненько занимался - от AD2500, встроенный в mcu8051ide и c51asm - исходники даже в простых проектах могут заметно отличаться для потребления каждого из них.
:(


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт дек 13, 2024 13:00:10 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 130
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1247
Рейтинг сообщения: 0
Just_Fluffy, извиняюсь что встряю. Ассемблеры для команд одинаковы, возможности (удобства) разные. Кроме команд есть ещё и директивы, есть ещё и макросредства. Я вам пример приведу, что бы было понятно. У меня был проект на z80. Дожил до 2012-го года (с 1994-го). Изначально транслировал m80 от небезизвестного Microsoft(с). 81-го года выпуска! Но это же стыдоба в наше время использовать ТАКОЕ старьё! Да ладно бы под CP/M. Эмуляторов много. Но из трансляторов ничего более современного не нашел. То там затык, то там не может, не хватает средств... Правда, исходник был не мал, 36000 строк. В итоге, подёргался и успокоился.
Я к тому что ассемблеры разные и возможности тоже.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт дек 13, 2024 13:40:39 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15153
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Если уж быть корректным то не "ассемблеры",
а компиляторы ассемблера...
:roll:


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 7956 ]     ... , , , 394, , , ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Google [Bot] и гости: 615


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y