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

 


По базе:  

микроэлектроника, микросхема, микроконтроллер, память, msp430, MSP430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, SED1335, mega128, avr, mega128  
  Главная страница > Обзоры по типам > Микроконтроллеры > AVR > Архитектура

реклама

 




Мероприятия:




Режимы адресации памяти программ и данных

При обращении к Flash памяти программ и памяти данных (SRAM, регистровому файлу и памяти I/O) AVR Enhanced RISC микроконтроллерами ATmega603/103 используются мощные и эффективные режимы адресации. В данном разделе описываются режимы адресации, поддерживаемые AVR архитектурой. На рисунках OP обозначает часть слова команды, соответствующую операционному коду.

Непосредственная адресация, одиночный регистр Rd

Непосредственная адресация одного регистра

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

Операнд содержится в регистре d (Rd).

Непосредственная адресация, два регистра Rd и Rr

Непосредственная регистровая адресация двух регистров

Рис. 9. Непосредственная регистровая адресация двух регистров

Операнды содержатся в регистрах r (Rr) и d (Rd).

Результат сохраняется в регистре d (Rd).

Непосредственная адресация I/O

Непосредственная адресация I/O

Рис. 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 регистра предшествовавшее инкрементированию.

Адресация константы с использованием команд LPM и ELPM

Адресация константы кода памяти

Рис. 16. Адресация константы кода памяти

Адрес байта константы определяется содержимым регистра Z. Старшие 15 битов определяют слово адреса (от 0 до 32К). Состояние младшего бита определяет выбор младшего байта (LSB = 0) или старшего байта (LSB = 1). При использовании команды ELPM младший бит (RAM Page) регистра Z - RAMPZ используется для выбора страницы памяти (RAMPZ0 = 0:младшая страница, RAMPZ0 = 1:старшая страница). Команда ELPM не используется микроконтроллером ATmega603.

Непосредственная адресация памяти программ, команды JMP и CALL

Непосредственная адресация памяти программ

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

Выполнение программы продолжается с адреса, записанного непосредственно в адресе команды.

Косвенная адресация памяти программ, команды IJMP и ICALL

Косвенная адресация памяти программ

Рис. 18. Косвенная адресация памяти программ

Выполнение программы продолжается с адреса, содержащегося в регистре Z (т.е. счетчик команд загружается содержимым регистра Z).

Относительная адресация памяти программ, команды RJMP и RCALL

Относительная адресация памяти программ

Рис. 19. Относительная адресация памяти программ

Выполнение программы продолжается с адреса PC + k + 1. Значение относительного адреса может быть от -2048 до 2047.


<-- Предыдущая страница Оглавление Следующая страница -->





 
Впервые? | Реклама на сайте | О проекте | Карта портала
тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru
©1998-2023 Рынок Микроэлектроники