Адрес операнда находится в Х-, Y- или Z-регистре. После выполнения операции соответствующий индексный регистр Х-, Y- или Z увеличивается на единицу.
Адресация к константам в памяти программ
Рис. 2.14. Адресация к константам в памяти программ
Адрес константы — байта содержится в регистре Z. 15 старших битов определяют адрес слова, а младший (0) бит — младший или старший байт константы в памяти программ. Если в младшем бите
Косвенная адресация памяти программ
Рис. 2.15. Косвенная адресация памяти программ
После операций IJMP или ICALL выполнение программы продолжается с адреса, записанного в Z-регистре (т. е. в PC счетчик команд микроконтроллера записывается содержимое Z-регистра).
Относительная адресация памяти программ
Рис. 2.16. Относительная адресация памяти программ
После операций RJMP или RCALL выполнение программы продолжается с адреса РС+k+1. Относительный адрес к может составлять от -2048 до 2047.
Арифметико-логическое устройство (АЛУ) микроконтроллера непосредственно подключено к 32 регистрам общего назначения. За один машинный цикл АЛУ производит операции между регистрами регистрового файла. АЛУ может выполнять арифметические, логические и битовые операции.
AT90S2313 содержит 2 Кб флэш-памяти для хранения программ. Флэш-память организована как 1Кх16. В фирменном описании микроконтроллера утверждается, что флэш-память можно перепрограммировать до 1000 раз.
Программный счетчик имеет ширину 10 битов и позволяет адресовать 1024 слов памяти программ.
Способы занесения информации (т. е. программ) во флэш-память микроконтроллера будут рассмотрены дальше.
AT90S2313 содержит 128 байтов электрически стираемой энергонезависимой памяти (EEPROM). EEPROM организована как отдельная область данных, каждый байт которой может быть прочитан и при необходимости перезаписан. EEPROM выдерживает не менее 100 000 циклов записи/стирания. К этой памяти может обращаться программа, считывая или записывая какие-либо данные. Кроме того, данные в эту память можно занести с помощью специального устройства — программатора, на этапе изготовления и программирования конструкции. Ее удобно использовать для хранения каких-либо констант.
На рис. 2.17 показана организация памяти данных в AT90S2313.
224 ячейки памяти включают в себя регистровый файл, память ввода/вывода и оперативную память данных.
Рис. 2.17. Организация памяти данных в микроконтроллере AT90S2313
Первые 96 адресов используются для регистрового файла и памяти ввода/вывода, следующие 128 — для ОЗУ данных.
При обращении к памяти используются пять различных режимов адресации: прямой, непосредственный со смещением, непосредственный, непосредственный с предварительным декрементом и непосредственный с постинкрементом. Регистры R26…R31 регистрового файла используются как указатели для непосредственной адресации.
Прямая адресация имеет доступ ко всей памяти данных. Непосредственная адресация со смещением используется для доступа к 63 ячейкам, базовый адрес которых задается содержимым регистров Y или Z.
Для непосредственной адресации с инкрементом и декрементом адреса используются адресные регистры X, Y и Z.
При помощи любого из этих режимов можно осуществлять доступ ко всем 32 регистрам общего назначения, 64 регистрам ввода/вывода и 128 ячейкам ОЗУ.
ЦПУ процессора AVR управляется тактовой частотой, генерируемой внешним резонатором. Внутреннее деление частоты генератора в микроконтроллерах семейства AVR не используется.
В микроконтроллере процесс выполнения команд организован так, что при выборе команды из памяти программ происходит выполнение предыдущей команды. Это позволяет достичь быстродействия 1 MIPS на МГц.
Все устройства ввода/вывода и периферийные устройства AT90S2313 располагаются в пространстве ввода/вывода. Различные ячейки этого пространства доступны через команды IN и OUT, пересылающие данные между одним из 32 регистров общего назначения и пространством ввода/вывода. К регистрам $00…$1F можно осуществлять побитовый доступ командами SBI и CBI. Значение отдельного бита этих регистров можно проверить командами SBIC и SBIS. Дополнительную информацию по этому вопросу можно найти в описании системы команд.