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

Обсуждаем контроллеры компании Atmel.
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

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

Сообщение akl »

Gudd-Head писал(а):Единственное что они могли сделать во всех АВРках, это чтобы стек после ресета настраивался сам.
Замечу, не во всех.
В той же mega8a до сих пор нет. Так что стек лучше настраивать вручную.
Реклама
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

Сообщение Gudd-Head »

COKPOWEHEU писал(а):Не стоит.

Да ну? Лучше когда там $0000, что ли? И при первом же push'е сваливается в $FFFF?
akl писал(а):В той же mega8a до сих пор нет.

Я имел в виду МОГЛИ БЫ.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

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

Сообщение COKPOWEHEU »

Да я знаю что там этого не сделано :-) Я про то что делать это и не надо, тем более что у разных контроллеров разный объем ОЗУ, соответственно разный адрес ее конца. Да и нагляднее так: если уж руками выставил стек, может будешь помнить что туда писать что попало не стоит. А если автоматически сгенерировалось, как в ЯВУ, например, так там и к памяти просто так не обратишься.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

Сообщение Gudd-Head »

COKPOWEHEU писал(а):тем более что у разных контроллеров разный объем ОЗУ, соответственно разный адрес ее конца

:facepalm: Естессно. Для каждого МК свой адрес стека. А СДЕЛАНО это, например, у 13-й Тиньки.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

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

Сообщение COKPOWEHEU »

Да? Не знал. Но все равно лучше перестраховаться и указать стек явно.
Реклама
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

Сообщение Gudd-Head »

COKPOWEHEU писал(а):Да? Не знал.

И не только у неё, во всех многих новых камнях.
COKPOWEHEU писал(а):Но все равно лучше перестраховаться и указать стек явно.

Лучше перестраховаться и почитать самый последний ДШ. Или вы перестраховываетесь и после ресета всю периферию отключаете и порты в Z-состояние переводите? :)))
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

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

Сообщение COKPOWEHEU »

Конечно инициализирую. Не отслеживать же чем этот ресет был вызван, началом работы, сбросом или там собакой.
Слово "переносимость" знакомо?
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

и снова о старом:
rcall годится при обьеме памяти до 8к
call годится при обьеме памяти до 64к
а что же используется в тех МК где память перевалила за рубеж 64к ? :dont_know:
Tell Me The Truth
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

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

Сообщение Alexeyslav »

А там используют iCall и/или "удлинители". Как правило, контроллеры с таким объемом флеша не содержат столько кода, объем этот преимущественно используется для размещения ресурсов(таблиц преобразования, картинок, шрифтов, звуков).
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

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

Сообщение ploop »

Что rcall/call, что rjmp/jmp применяется к месту. Если в МК 64 кило флеша, это не значит, что все прыжки будут с начала в конец. Подавляющее большинство - всего на несколько слов, может только раз или два во всём проекте пригодится прыгнуть дальше.
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

ploop писал(а):может только раз или два во всём проекте пригодится прыгнуть дальше.

и шо тогда делать?
Tell Me The Truth
a_skr
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

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

Сообщение a_skr »

прыгать два (или больше) раза:

jmp m1
...
m_1: rjmp m_2
m1: jmp m2
m_2:
...
m2:
Последний раз редактировалось a_skr Пт сен 06, 2013 10:35:25, всего редактировалось 1 раз.
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

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

Сообщение ploop »

и шо тогда делать?

Использовать rjmp/rcall и не париться. Если вдруг размер прыжка превысит их возможности - компилятор выдаст ошибку, сотрёшь буквочку R, и волосы станут мягкими и шелковистыми.
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

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

Сообщение Kavka »

FreshMan писал(а):и снова о старом:
rcall годится при обьеме памяти до 8к
call годится при обьеме памяти до 64к
а что же используется в тех МК где память перевалила за рубеж 64к ? :dont_know:

Начнём с того, что слово объём пишется с твёрдым знаком. :shock: :kill:
Далее. Вы странный какой-то. Что ж вы про BRNE и и прочие BRxx не написали. А они вообще +-64 слова позволяют прыгать. И что, по вашему, их нигде нельзя использовать? :)
Продолжим. RCALL/RJMP прыгают на +-2 килослова, что соответствует +-4 килобайта, т.е. 8 кб. Тут нормально.
А вот CALL/JMP адресуют 64 килослова, т.е. вплоть до 128 килобайт никаких наворотов в виде EICALL/EIJMP не требуется.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

Kavka писал(а):Начнём с того, что слово объём пишется с твёрдым знаком.
покорнейше прошу меня извинить, если это вас так задело......, училися я в украинской школе и русский язык знаю по наслышке, поэтому покорнейше прошу вас не презирать меня за это :))
по остальному: буду учить :tea:
Tell Me The Truth
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

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

Сообщение Kavka »

Не, не задело. Надо же с чего то начать. :)
Меня самого тут поймали и носом ткнули, что с ошибками написал. :roll:
Так что никто не застрахован от ошибок. Поторопились, отвлеклись там, или ещё чего и опа... :)
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

правильно ли я разумею

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

add   r22,r23   
brcc   nocarry        

если при сложении двух регистров их сумма не превысит 255 и соответственно не будет переноса то только тогда мы прыгнем на строчку nocarry
Tell Me The Truth
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

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

Сообщение Kavka »

Правильно.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

штудирую ликбез http://radiokot.ru/start/mcu_fpga/avr/12/
не совсем понятно вот это место
Изображение
может кто в силах обяснить более понятно зачем там умножение на 2 ?
Tell Me The Truth
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

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

Сообщение Alexeyslav »

А что именно из написанного до тебя не доходит? дескать, чтобы умножить на два зачем мы умножаем на два?
Ответить

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