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

На Рис. 5 представлена структура 32 регистров общего назначения.

Рис. 5. Регистры общего назначения CPU микроконтроллеров AVR

Все регистровые команды обращаются непосредственно к регистрам в течение одного тактового цикла. Исключением являются пять логических и арифметических операций с константами (SBCI, SUBI, CPI и ANDI) и операция ORI между константой и содержимым регистра, и команда непосредственной загрузки константы LDI. Эти команды используют вторую половину регистров регистрового файла — R16..R31.

Самые общие команды SBC, SUB, CP, AND и OR и все прочие операции между двумя регистрами или с одним регистром используют для записи результата регистровый файл.

Как показано на Рис. 5, каждому регистру соответствует адрес памяти данных, отображающий их в первых 32 ячейках пользовательского пространства данных. Хотя они не используются как физические ячейки SRAM, такая организация памяти обеспечивает гибкое обращение к регистрам, поскольку X,Y и Z регистры могут быть использованы для индексации любого регистра в файле.

SRAM данных имеет объем 4 Кбайт и занимает адресное пространство от $0060 до $0FFF.

На Рис. 5 представлена структура 32 регистров общего назначения.

Рис. 5. Регистры общего назначения CPU микроконтроллеров AVR

Все регистровые команды обращаются непосредственно к регистрам в течение одного тактового цикла. Исключением являются пять логических и арифметических операций с константами (SBCI, SUBI, CPI и ANDI) и операция ORI между константой и содержимым регистра, и команда непосредственной загрузки константы LDI. Эти команды используют вторую половину регистров регистрового файла — R16..R31.

Самые общие команды SBC, SUB, CP, AND и OR и все прочие операции между двумя регистрами или с одним регистром используют для записи результата регистровый файл.

Читайте также  Приколы в женской общаге

Как показано на Рис. 5, каждому регистру соответствует адрес памяти данных, отображающий их в первых 32 ячейках пользовательского пространства данных. Хотя они не используются как физические ячейки SRAM, такая организация памяти обеспечивает гибкое обращение к регистрам, поскольку X,Y и Z регистры могут быть использованы для индексации любого регистра в файле.

SRAM данных имеет объем 4 Кбайт и занимает адресное пространство от $0060 до $0FFF.

Что нужно для того, чтобы стать профессиональным разработчиком программ для микроконтроллеров и выйти на такой уровень мастерства, который позволит с лёгкостью найти и устроиться на работу с высокой зарплатой (средняя зарплата программиста микроконтроллеров по России на начало 2017 года составляет 80 000 рублей). Подробнее.

Регистры общего назначения (РОН) есть в любом процессоре, микропроцессоре и микроконтроллере. Их ещё называют “рабочие регистры”. Эти регистры используются для хранения промежуточных итогов вычислений (также как и внутренняя память).

По сравнению с памятью у РОН есть два основных преимущества:

  • Обращение к регистрам выполняется намного быстрее, чем к памяти.
  • При обращении к регистрам не нужно указывать адрес (как в случае с памятью).

Файл регистров общего назначения

В документации AVR регистры общего назначения объединены в так называемый файл регистров общего назначения — General Purpose Register File (можно, пожалуй, ещё перевести как “Регистровый файл общего назначения”).

Слово файл перевести с английского можно ещё и как “массив”.

В общем, понимать это нужно именно как некий набор или блок регистров общего назначения, которые используются для различных целей.

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

Читайте также  Почему не отключается холодильник стинол причина

Схемы ввода-вывода и размещение регистров в памяти

Массив РОН наилучшим образом приспособлен для для набора команд архитектуры AVR Enhanced RISC. Для того, чтобы достичь необходимой производительности и гибкости, следующие схемы ввода-вывода поддерживаются файлом регистров:

  • Один 8-разрядный выходной операнд и один 8-разрядный входной операнд результата.
  • Два 8-разрядных выходных операнда и один 8-разрядный входной операнд результата.
  • Два 8-разрядных выходных операнда и один 16-разрядный входной операнд результата.
  • Один 16-разрядный выходной операнд и один 16-разрядный входной операнд результата.

На рисунке показана структура 32 рабочих регистров общего назначения процессора.

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

Как показано на рисунке выше, каждый регистр также связан с адресом в памяти данных. Этот адрес отражает размещение регистра непосредственно в первых 32 ячейках пользовательского пространства данных. Хотя эта память физически не находится в SRAM, такая организация памяти обеспечивает большую гибкость доступа к регистрам, потому как указатель регистра X-, Y- и Z- может быть установлен для индексации любого регистра в файле регистров.

Некоторые команды не могут использовать определённые регистры (подробнее об этом в описании набора команд).

Х-регистр, Y-регистр и Z-регистр

Все регистры общего назначения в AVR являются восьми разрядными. Однако шесть последних регистров (R26. R31) имеют некоторые дополнительные функции для их использования в качестве регистров общего назначения. Эти регистры являются 16-битными указателями адреса для косвенной адресации в области памяти данных. Три косвенных адреса регистров Х, Y и Z определены, как показано на рисунке ниже.

В различных режимах адресации эти адресные регистры имеют функции фиксированного смещения, автоматический инкремент и автоматический декремент (более подробно об этом в описании инструкций).

Читайте также  Проверить электронный адрес на существование

Таким образом, эти регистры могут быть объединены в пары (см. рис. выше) и использоваться для 16-разрядных операций. При этом остаётся возможность чтения каждого регистра пары отдельно.

Ссылка на основную публикацию
Adblock
detector