Регистровые переменные внутри блока - естественно. Компилятору -больше свободы для маневров. Не вижу в этом проблем и для программиста. Например у Вас есть глобальный указатель
int *y;
Работа с памятью через этот указатель осуществляется в функции
void func() {register int *yy=y; ... }
Т.е при входе в функцию индексный регистр занимается, а при выходе освобождается. Это общий принцип. Не знаю, может быть в конкретизации к AVR есть еще какие то дополнительные возможности.
|