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




Команды, оперирующие с двумя регистрами, действуют, в основном, аналогичным образом. В этих командах регистр-приемник (destination) указывается перед регистром-источником (source), то есть является первым параметром. Таким образом, команда

 

add R0, R1

 

реально выполняется так: R0 = R0 + R1. Рассмотренные способы адресации операндов называются прямой регистровой адресацией (рисунок 16).


Рис. 16. Прямая адресация AVR к двум РОН

 

Операнды могут также входить в состав команды. В других контроллерах это называется «непосредственной адресацией». В AVR будем называть этот способ адресации «непосредственной прямой регистровой» (рисунок 17). Хорошим примером команды с такой адресацией является ORI: так как поле адреса составляет 4 бита, возможно обращаться только к 16 старшим РОН.

 

Рис. 17. Непосредственная адресация AVR

 

Это, очевидно, окажет влияние на то, как разместить данные в рабочих регистрах. Чтобы избежать ошибок, можно использовать в качестве рабочих 16 старших регистров общего назначения, имеющих адреса с $10 по $1F.

Последняя форма прямой адресации, применяемая для доступа ко всему объему адресуемой памяти, использует второе слово команды для указания 16-разрядного адреса. При этом способе адресации данные, размещенные в любой точке адресуемой памяти, поступают в РОН или выбираются из них. Есть две особенности, на которые стоит обратить внимание при такой адресации. Первая особенность – опять доступны только 16 старших РОН. Вторая особенность – команды с такой адресацией не реализуются в младших моделях AVR1200. В этих моделях для передачи данных между РОН и набором регистров ввода-вывода используются команды in и out, реализующие прямую адресацию двух регистров.

Последний способ обращения к данным – косвенная адресация. По технической документации на микроконтроллеры AVR видно, что в ней используется пять рисунков для описания этого способа адресации, реализация которого иллюстрируется на рисунке 18. На этом рисунке показана только косвенно-регистровая адресация и не приведены ее варианты с предекрементом и постинкрементом. Основные команды косвенной адресации используют содержимое индексных регистров в качестве адреса для выборки данных. Это похоже на индексную адресацию в большинстве других микроконтроллеров. Это единственный режим, доступный в младших моделях AVR, где для обращения к РОН может использоваться только индексный регистр Z, а РОН и регистры ввода-вывода не образуют общее регистровое пространство.


 

Рис. 18. Косвенная адресация к РОН-памяти данных в AVR

 

При обычной косвенно-регистровой адресации содержимое индексного регистра не изменяется при выполнении операции. Для получения эффективного адреса можно использовать положительное смещение, прибавляемое к содержимому индексного регистра. Такой способ адресации называется косвенно-регистровой адресацией со смешением. Смещение может иметь значение от нуля до 63 и прибавляется к величине, хранящейся в индексном регистре. Такой способ адресации наиболее эффективен при обращении к структуре данных, когда смещение указывает на нужный элемент в структуре. Полученный эффективный адрес не сохраняется после операции.

Есть и другие варианты косвенной адресации: косвенно–регистровая с предекрементом и косвенно-регистровая с постинкрементом. При их использовании происходит изменение содержимого индексного регистра в процессе выполнения команды – либо до обращения к памяти (предекремент), либо после (постинкремент). Значительным преимуществом этих команд является возможность организации стека, кроме того они могут служить для индексации элементов в структурах данных. Это позволяет эффективно применять AVR при разработке компиляторов для языков высокого уровня, которые используют локальные переменные.

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


ВЫВОДЫ

 

Эффективность микроконтроллеров семейства AVR поддерживается наличием флаш-памяти для хранения программ с возможностью внутрисхемного программирования. Но наличие только 32 регистров общего назначения является ограничением при написании прикладных программ. Новые модели AVR обладают дополнительными периферийными устройствами и вариантами реализации памяти, что значительно обогащает данное семейство микроконтроллеров.


СПИСОК ЛИТЕРАТУРЫ

 

1. Мирский Г.Я. Микропроцессоры в измерительных приборах / Г.Я. Мирский. – М.: Радио и связь, 1984. – 160 с.

2. Шилейко А.В. Микропроцессоры / А.В. Шилейко, Т.И. Шилейко. – М.: Радио и связь, 1986. – 112 с.

4. Голубцов М.С. Микроконтроллеры AVR: от простого к сложному / М.С. Голубцов, А.В. Кириченкова. – М.: СОЛОН–Пресс, 2006. – 304 с.

5. Предко М. Руководство по микроконтроллерам. Т. 1 / М. Предко. – М.: Постмаркет, 2001. – 416 с.

6. Варламов И.В. Микропроцессоры в бытовой технике / И.В. Варламов, И.Л. Касаткин. – М.: Радио и связь, 1990. – 104 с.

7. Токхейм Р. Основы цифровой электроники. – М.: Мир, 1998. – 392 с.

8. Хартов В.Я. Микроконтроллеры AVR. Практикум для начинающих / В.Я. Хартов. – М: Изд-во МГТУ им. Н.Э. Баумана, 2007. – 240 с.

Размещено

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-01-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: