Найти в Дзене
Будни инженера

Регистры общего назначения AVR

Новички очень часто путаются в терминологии. А всё потому, что почти все слова, используемые в инженерии, являются не русскими, и, следовательно, малопонятными для русскоговорящих людей. Поэтому я всегда стараюсь переводить эти термины на русский. Так лучше понимается смысл и лучше запоминается. Ну для меня во всяком случае это так.

Итак, что такое регистр? Вспоминайте, где вы могли слышать что-то подобное. Регистратура, например (в больнице-то хоть раз в жизни каждый был). То есть это понятие как-то связано с приёмом и хранением данных (хотя у этого слова довольно много значений). Когда вы это понимаете, то вы также понимаете, почему в микропроцессорной технике регистры называются регистрами.

Таким образом, регистр в микроконтроллере - это устройство для хранения данных. А Регистры Общего Назначения (РОН) - это набор регистров, которые используются для хранения промежуточных результатов вычислений. В документации на английском они называются General Purpose Working.

Сами регистры физически находятся внутри процессора, а не в оперативной памяти, как некоторые думают.

В микроконтроллерах AVR имеется 32 регистра общего назначения. Каждый регистр имеет свой номер, но для удобства программирования регистры также имеют имена от R0 до R31.

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

Некоторые команды имеют ограничения по использованию РОН. Например, команды для обмена данными с портами ввода-вывода не могут использовать регистры R0…R15 (речь идёт о микроконтроллерах AVR).

Все регистры общего назначения AVR являются 8-разрядными. То есть могут хранить один байт. Однако последние 6 регистров (R26…R31) могут быть объединены в пары. Такая пара в некоторых операциях работает как один 16-разрядный регистр. При этом не теряется возможность взаимодействовать с каждым 8-разрядным регистром этой пары.

Регистровые пары имеют свои названия:

  • Х - пара регистров R26 и R27
  • Y - пара регистров R28 и R29
  • Z - пара регистров R30 и R31

Обычно весь набор РОН имеется в любом микроконтроллере серии AVR. Однако ATtiny4/5/9/10 имеют только 16 регистров. По соображениям совместимости эти регистры пронумерованы R16...R31, а не R0...R15.

На этом всё. В следующий раз расскажу о портах ввода-вывода, которые “лёгким движением руки” превращаются в регистры ввода-вывода. Подписывайтесь на канал, чтобы ничего не пропустить…