
- •5.3. Микроконтроллер avr at90s8515 семейства Classic
- •Организация памяти микроконтроллера
- •Память программ
- •Память данных
- •Использование внешнего озу
- •Регистры общего назначения
- •Регистры ввода/вывода
- •Энергонезависимая память данных
- •Сторожевой таймер
- •Последовательный периферийный интерфейс spi
- •Прерывания
- •Обработка прерываний
- •Программирование микроконтроллеров
- •Защита программного кода и данных
- •Система команд и способы адресации памяти данных
- •Прямая адресация
- •Прямая адресация одного регистра общего назначения
- •Прямая адресация двух регистров общего назначения
- •Прямая адресация регистра ввода/вывода
- •Прямая адресация озу
- •Косвенная адресация
- •Простая косвенная адресация
- •Относительная косвенная адресация
- •Косвенная адресация с преддекрементом
- •Косвенная адресация с постинкрементом
- •Система команд
- •Операнды
- •Типы команд
- •Команды арифметических и логических операций
- •Команды пересылки данных
- •Команды передачи управления
- •Команды операций с битами
- •Команды управления системой
- •Пример программы и её оформление
- •Микропроцессорная система управления на базе мк at90s8515
- •7. Микроконтроллер экр1847вг6
- •8. Частотно-регулируемые привода
- •Режимы управления асинхронными электродвигателями
- •Преобразователь частоты 1336Plus
Система команд и способы адресации памяти данных
Микроконтроллер AT90S8515 поддерживают 8 способов адресации для доступа к различным областям памяти данных (РОН, РВВ, ОЗУ).
В действительности способов адресации всего два: прямая адресация и косвенная. Однако каждый способ адресации имеет несколько разновидностей в зависимости от того, к какой области памяти производится обращение (для прямой адресации) или какие дополнительные действия выполняются над индексным регистром (для косвенной адресации).
Аббревиатура КОП обозначает часть (или части) слова команды, содержащую значение кода операции.
Прямая адресация
При прямой адресации адреса операндов содержатся непосредственно в слове команды. В соответствии со структурой памяти данных существуют следующие разновидности прямой адресации: прямая адресация одного РОН, прямая адресация двух РОН, прямая адресация РВВ, прямая адресация ОЗУ.
Прямая адресация одного регистра общего назначения
Этот способ адресации используется в командах, оперирующих с одним из регистров общего назначения. При этом адрес регистра-операнда Rr/Rd (его номер r/d=R31÷R0) содержится в разрядах 8...4 (5 бит) слова команды рис. 5.10.
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
КОП |
r/d4÷r/d0 |
КОП |
Рис. 5.10. Прямая адресация одного регистра общего назначения
Примером команд, использующих этот способ адресации, являются команды работы со стеком (PUSH Rr, POP Rd), команды инкремента (INC Rd), декремента (DEC Rd), а также некоторые команды арифметических операций.
Прямая адресация двух регистров общего назначения
Этот способ адресации используется в командах, оперирующих одновременно с двумя регистрами общего назначения. При этом адрес регистра-источника Rr содержится в разрядах r9, r3...r0 (5 бит), а адрес регистра приемника Rd в разрядах d8...d4 (5 бит) слова команды (рис. 5.11).
К командам, использующим этот способ адресации, относятся команды пересылки данных из регистра в регистр (MOV Rd, Rn), а также большинство команд арифметических операций.
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
КОП |
r4 |
d4÷d0 |
r3÷r0 |
Рис. 5.11. Прямая адресация двух регистров общего назначения
Некоторые команды имеющие только один регистр-операнд, используют рассматриваемый способ адресации. В этом случае источником и приемником является один и тот же регистр. В качестве примера можно привести команду очистки регистра (Clr Rd), которая в действительности выполняет операцию «Исключающее ИЛИ» регистра с самим собой (EOR Rd, Rd).
Прямая адресация регистра ввода/вывода
Данный способ адресации используется командами "IN Rd,RBB" и "OUT RBB,Rr" пересылки данных между регистром ввода/вывода и регистровым файлом. В этом случае адрес регистра ввода/вывода содержится в разрядах 10, 9, 3...0 (6 бит), а адрес РОН - в разрядах 8...4 (5 бит) слова команды (рис. 5.12).
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
КОП |
i/o5÷i/o4 |
r/d4÷r/d0 |
i/o3÷i/o0 |
Рис. 5.12. Прямая адресация регистра ввода/вывода