Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Котострафически нехватает регистров!
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Potter
Использую регистры r16-r31.... Думал еть еще 3 парных регистра ZH,ZL,YH,YL,XH,XL.... Халява не прошла эти регистры фактически являются регистрами r26-r31..... парные регистры в программе используются..... для работы остаются регистры r16-r25 -- 10 регистров...... я на асме только только стал писать..... но как по мне 10 регистров для работы маловато..... есть еще регистры r0-r15.... но компилятор не дает ими пользоваться.... подскажите что делать??? может можно как-то использовать регистры r0-r15???


Извените пожалуйста две темы случайно создал..........
beer_warrior
1. Регистрами r0-15 тоже можно пользоваться, в них просто нельзя записывать непосредственные данные. r0 еще используется вместе с X-Z, будте внимательны.
2.Существует памятьи все хранится там. Регистры используются для операций над данными. Из опыта скажу, что в большинстве случаев вполне хватает 3-х регистров и одной регистровой пары.
(2 all просьба камни не кидать 16/32 битная арифметика и плавающая точка не имеется в виду smile.gif )
Potter
Цитата(beer_warrior @ Jul 2 2006, 12:48) *
1. Регистрами r0-15 тоже можно пользоваться, в них просто нельзя записывать непосредственные данные. r0 еще используется вместе с X-Z, будте внимательны.
2.Существует памятьи все хранится там. Регистры используются для операций над данными. Из опыта скажу, что в большинстве случаев вполне хватает 3-х регистров и одной регистровой пары.
(2 all просьба камни не кидать 16/32 битная арифметика и плавающая точка не имеется в виду smile.gif )


Что значит непосредственные? И какие данные можно вообще записывать в регисторы r0-15?
beer_warrior
Цитата
Что значит непосредственные? И какие данные можно вообще записывать в регисторы r0-15?

Непосредственные(immediate) - константы из кода, команда LDI.
Можно писать: результаты операций, данные из памяти.(MOV, LDS ...)
Вообще-то если так туго, советую взять любую аппноту и руководство по асму и посидеть поразбирать.
_artem_
Не понял истоки киськастрофической нехватки регистров.
Посмотрите примеры из application notes и попросите модератора чтобы исправил название темы.
TriD
beer_warrior +1
Для хранения переменных следует использовать память.
SasaVitebsk
Цитата(TriD @ Jul 3 2006, 09:22) *
beer_warrior +1
Для хранения переменных следует использовать память.


Всегда катастрофически хватает регистров. smile.gif Особенно при пользовании "компилятором" AVR Studio (называемом в простонародье ассемблером).

В критических случаях можно использовать память а также использовать п/п где при входе/выходе сохранять/восстанавливать регистры.

Для задач управления внешняя память практически не используется. Разве что для реализации буферов, которые прекрасно организуются с помощью косвенной автоинкрементной адресации.

Короче подучите ассемблер, и всё получится! smile.gif
IgorKossak
Многие специалисты считают как раз наоборот, что у AVR катастрофически много регистров. wink.gif
_Bill
Цитата(IgorKossak @ Jul 3 2006, 15:52) *
Многие специалисты считают как раз наоборот, что у AVR катастрофически много регистров. wink.gif

Я как раз того же мнения. Вполне хватило бы и половины имеющихся.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.