Страница 203 из 400

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

Добавлено: Чт сен 05, 2013 11:25:45
akl
Gudd-Head писал(а):Единственное что они могли сделать во всех АВРках, это чтобы стек после ресета настраивался сам.
Замечу, не во всех.
В той же mega8a до сих пор нет. Так что стек лучше настраивать вручную.

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

Добавлено: Чт сен 05, 2013 11:26:03
Gudd-Head
COKPOWEHEU писал(а):Не стоит.
Да ну? Лучше когда там $0000, что ли? И при первом же push'е сваливается в $FFFF?
akl писал(а):В той же mega8a до сих пор нет.
Я имел в виду МОГЛИ БЫ.

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

Добавлено: Чт сен 05, 2013 11:38:19
COKPOWEHEU
Да я знаю что там этого не сделано :-) Я про то что делать это и не надо, тем более что у разных контроллеров разный объем ОЗУ, соответственно разный адрес ее конца. Да и нагляднее так: если уж руками выставил стек, может будешь помнить что туда писать что попало не стоит. А если автоматически сгенерировалось, как в ЯВУ, например, так там и к памяти просто так не обратишься.

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

Добавлено: Чт сен 05, 2013 11:41:50
Gudd-Head
COKPOWEHEU писал(а):тем более что у разных контроллеров разный объем ОЗУ, соответственно разный адрес ее конца
:facepalm: Естессно. Для каждого МК свой адрес стека. А СДЕЛАНО это, например, у 13-й Тиньки.

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

Добавлено: Чт сен 05, 2013 12:43:48
COKPOWEHEU
Да? Не знал. Но все равно лучше перестраховаться и указать стек явно.

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

Добавлено: Чт сен 05, 2013 12:46:06
Gudd-Head
COKPOWEHEU писал(а):Да? Не знал.
И не только у неё, во всех многих новых камнях.
COKPOWEHEU писал(а):Но все равно лучше перестраховаться и указать стек явно.
Лучше перестраховаться и почитать самый последний ДШ. Или вы перестраховываетесь и после ресета всю периферию отключаете и порты в Z-состояние переводите? :)))

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

Добавлено: Чт сен 05, 2013 13:51:29
COKPOWEHEU
Конечно инициализирую. Не отслеживать же чем этот ресет был вызван, началом работы, сбросом или там собакой.
Слово "переносимость" знакомо?

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

Добавлено: Чт сен 05, 2013 22:02:10
FreshMan
и снова о старом:
rcall годится при обьеме памяти до 8к
call годится при обьеме памяти до 64к
а что же используется в тех МК где память перевалила за рубеж 64к ? :dont_know:

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

Добавлено: Чт сен 05, 2013 22:35:18
Alexeyslav
А там используют iCall и/или "удлинители". Как правило, контроллеры с таким объемом флеша не содержат столько кода, объем этот преимущественно используется для размещения ресурсов(таблиц преобразования, картинок, шрифтов, звуков).

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

Добавлено: Чт сен 05, 2013 23:12:03
ploop
Что rcall/call, что rjmp/jmp применяется к месту. Если в МК 64 кило флеша, это не значит, что все прыжки будут с начала в конец. Подавляющее большинство - всего на несколько слов, может только раз или два во всём проекте пригодится прыгнуть дальше.

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

Добавлено: Пт сен 06, 2013 10:03:03
FreshMan
ploop писал(а):может только раз или два во всём проекте пригодится прыгнуть дальше.
и шо тогда делать?

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

Добавлено: Пт сен 06, 2013 10:31:01
a_skr
прыгать два (или больше) раза:

jmp m1
...
m_1: rjmp m_2
m1: jmp m2
m_2:
...
m2:

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

Добавлено: Пт сен 06, 2013 10:31:14
ploop
и шо тогда делать?
Использовать rjmp/rcall и не париться. Если вдруг размер прыжка превысит их возможности - компилятор выдаст ошибку, сотрёшь буквочку R, и волосы станут мягкими и шелковистыми.

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

Добавлено: Пт сен 06, 2013 15:14:59
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 не требуется.

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

Добавлено: Пт сен 06, 2013 15:36:09
FreshMan
Kavka писал(а):Начнём с того, что слово объём пишется с твёрдым знаком.
покорнейше прошу меня извинить, если это вас так задело......, училися я в украинской школе и русский язык знаю по наслышке, поэтому покорнейше прошу вас не презирать меня за это :))
по остальному: буду учить :tea:

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

Добавлено: Пт сен 06, 2013 18:39:28
Kavka
Не, не задело. Надо же с чего то начать. :)
Меня самого тут поймали и носом ткнули, что с ошибками написал. :roll:
Так что никто не застрахован от ошибок. Поторопились, отвлеклись там, или ещё чего и опа... :)

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

Добавлено: Сб сен 07, 2013 11:10:28
FreshMan
правильно ли я разумею

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

add	r22,r23	
brcc	nocarry     	
если при сложении двух регистров их сумма не превысит 255 и соответственно не будет переноса то только тогда мы прыгнем на строчку nocarry

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

Добавлено: Сб сен 07, 2013 11:34:02
Kavka
Правильно.

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

Добавлено: Вс сен 08, 2013 11:59:34
FreshMan
штудирую ликбез http://radiokot.ru/start/mcu_fpga/avr/12/
не совсем понятно вот это место
Изображение
может кто в силах обяснить более понятно зачем там умножение на 2 ?

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

Добавлено: Вс сен 08, 2013 12:30:45
Alexeyslav
А что именно из написанного до тебя не доходит? дескать, чтобы умножить на два зачем мы умножаем на два?