Регистры R26-R31, кроме своего основного назначения, имеют дополнительную функцию. Эти регистры могут служить 16-битными указателями адреса для операций, использующих косвенную адресацию. Три косвенных регистра адреса X, Y, и Zопределены так, как это показано на рис. 5.
В разных командах, использующих косвенную адресацию, эти регистры могут быть использованы как источники постоянного адреса, как адресный регистр с автоматическим приращением адреса и как регистр с автоматическим уменьшением адреса.
Рис. 5 - Сдвоенные регистры X, Y, Z
Указатель стека
Стек, главным образом, используется:
♦ для временного хранения данных;
♦ для хранения локальных переменных;
♦ для хранения адреса выхода из подпрограммы или процедуры обработки прерывания.
Регистр указателя стека всегда указывает на его вершину.
Указатель стека указывает на стековую область в памяти данных (SRAM). В стеке, кроме прочего, сохраняются;
♦ адрес выхода из подпрограммы;
♦ адрес выхода из процедуры обработки прерывания.
Поэтому в любой программе адрес начала стека необходимо определить перед тем, как будет вызвана любая подпрограмма, и перед тем, как будут разрешены прерывания. Первоначально указатель стека должен быть установлен на адрес не ниже 0x60.
Указатель стека уменьшается на единицу, когда данные записываются в стек при помощи команды PUSH, и уменьшается на два, когда в стек записывается в адрес возврата из подпрограммы или процедуры обработки прерывания.
Указатель стека увеличивается на единицу, когда данные читаются из стека при помощи команды POP, и увеличивается на два, когда данные извлекаются из стека при выходе из подпрограммы (команда RET) или завершении процедуры обработки прерывания (команда RETI).
Указатель стека во всех микросхемах AVRвыполнен в виде двух 8-разрядных регистров ввода-вывода. Число фактически используемых разрядов для каждой модели микроконтроллеров разное. В некоторых моделях, в том числе и вATtiny2313, объём памяти данных настолько мал, что для указателя стека используется только младший из регистров указателя стека (SPL). Регистр SPHу них отсутствует. Ниже показана структура регистров указателя стека для микроконтроллера ATtiny2313.
Память ATtiny2313
Теперь рассмотрим различные виды памяти микроконтроллера ATtiny2313. Архитектура AVRсодержит два основных вида памяти:
♦ память данных;
♦ память программ.
Кроме того, микросхема ATtiny2313 имеет EEPROM-память для долговременного хранения данных. Все три вида памяти представляют собой непрерывные области с линейно возрастающими адресами.
Другое по теме:
Организация почтовой связи Связь является одной из важнейших составляющих экономики. Основное ее назначение – наиболее полное и высококачественное удовлетворение потребностей в услугах связи населения, экономики и обороны страны с учетом постоянно растущих потребностей об ...