При обращении к Flash памяти программ и памяти данных (SRAM, регистровому файлу и памяти I/O) AVR Enhanced RISC микроконтроллерами ATmega603/103 используются мощные и эффективные режимы адресации. В данном разделе описываются режимы адресации, поддерживаемые AVR архитектурой. На рисунках OP обозначает часть слова команды, соответствующую операционному коду.
Рис. 8. Непосредственная адресация одного регистра
Операнд содержится в регистре d (Rd).
Рис. 9. Непосредственная регистровая адресация двух регистров
Операнды содержатся в регистрах r (Rr) и d (Rd).
Результат сохраняется в регистре d (Rd).
Рис. 10. Непосредственная адресация I/O
Адрес операнда содержится в 6 битах слова команды. Величина n определяет адрес регистра источника или регистра назначения.
Рис. 11. Непосредственная адресация данных
16-разрядный адрес данных содержится в 16 младших разрядах 32-разрядной команды. Rd/Rr определяют регистр источник или регистр назначения.
Рис. 12. Косвенная адресация данных со смещением
Адрес операнда вычисляется суммированием содержимого регистра Y или Z с 6 битами адреса, содержащимися в слове команды.
Рис. 13. Косвенная адресация данных
Адрес операнда содержится в регистре X, Y или Z.
Рис. 14. Косвенная адресация данных с преддекрементом
Перед выполнением операции регистр X, Y или Z декрементируется. Декрементированное содержимое регистра X, Y или Z является адресом операнда.
Рис. 15. Косвенная адресация данных с постинкрементом
После выполнения операции регистр X, Y или Z инкрементируется. Адресом операнда является содержимое X, Y или Z регистра предшествовавшее инкрементированию.
Рис. 16. Адресация константы кода памяти
Адрес байта константы определяется содержимым регистра Z. Старшие 15 битов определяют слово адреса (от 0 до 32К). Состояние младшего бита определяет выбор младшего байта (LSB = 0) или старшего байта (LSB = 1). При использовании команды ELPM младший бит (RAM Page) регистра Z - RAMPZ используется для выбора страницы памяти (RAMPZ0 = 0:младшая страница, RAMPZ0 = 1:старшая страница). Команда ELPM не используется микроконтроллером ATmega603.
Рис. 17. Непосредственная адресация памяти программ
Выполнение программы продолжается с адреса, записанного непосредственно в адресе команды.
Рис. 18. Косвенная адресация памяти программ
Выполнение программы продолжается с адреса, содержащегося в регистре Z (т.е. счетчик команд загружается содержимым регистра Z).
Рис. 19. Относительная адресация памяти программ
Выполнение программы продолжается с адреса PC + k + 1. Значение относительного адреса может быть от -2048 до 2047.
<-- Предыдущая страница | Оглавление | Следующая страница --> |