- •1. Основные понятия и определения мпс
- •2. Понятие об архитектуре мп. Классификация мп.
- •3.Обобщенная структура мп. Назначение элементов структуры.
- •4.Рабочий цикл мп. (цикл фон-Неймана).
- •8. Структурная схема к580вм80, назначение элементов
- •7. Уго к580вм80, назначение выводов
- •33) Алгоритм функционирования к580вм80
- •12. Организация памяти мпс.
- •11. Организация обмена информацией в мпс на базе к580вм80
- •10. Структура мпс на базе к580вм80, организация шин
- •9 Программная модель мп кр580вм80а имеет вид:
- •14 Режимы адресации к580вм80
- •13. Система команд микропроцессора к580.
- •15. Методика записи программ на ассемблере.
- •16. Структурная схема к1810вм86
- •17. Программная модель к1810вм86.
- •18. Сегментация памяти к1810вм86, методы адресации
- •1) Основные понятия и определения мпс
- •6. Режимы обмена в мпс
- •19. Уго к1810вм86, назначение выводов
- •20. Режимы обмена к1810вм86мк
- •21.Структура микроконтроллера atmel avr
- •23.Система команд, режимы адресации аа
- •24. Схемы портов ввода-вывода мк(в общем)
- •1.2.3. Двунаправленный порт ввода-вывода
- •1.2.4. Квазидвунаправленный порт ввода-вывода
- •1.2.5. Двунаправленный порт ввода-вывода с программным подключением «подтягивающих» резисторов
- •25. Схема порта аа
- •26. Назначение, структура и работа таймеров-счетчиков (в общем виде)
- •27. Схема работы и управление таймеров-счетчиков т0 аа
- •28. Генераторы шим сигналов на таймерах аа
- •29. Классификация последовательных интерфейсов
- •30. Организация последовательного интерфейса rs-232, формат кадра и управление последовательным интерфейсом в Atmel avr
- •31. Средства программно-аппаратной поддержки для разработки программ для Atmel avr
- •32. Структура программы мк Atmel avr
23.Система команд, режимы адресации аа
Микроконтроллеры типа AVR серий ATmega16 и их модели имеют сокращённые (по сравнению с процессорами универсальных ЭВМ) наборы команд-инструкций. Это вместе с особенностями архитектуры позволяет значительно сократить число машинных тактов, затрачиваемых на исполнение команды, и повысить скорость выполнения типичных для МК программ.
Для программирования используется как язык ассемблера, так и языки высокого уровня (в частности, язык Си). Наиболее доступной интегрированной средой программирования на языке ассемблера является программный пакет AVR Studio. Он включает в себя текстовый редактор, транслятор-ассемблер, отладчик-симулятор и программу загрузки Flash-памяти и EEPROM через специальное устройство-программатор. Язык ассемблера состоит из набора команд-инструкций, в которых можно использовать простые операторные выражения, и директив, используемых на этапе трансляции-ассемблирования.
Базовый набор команд подразделяется на арифметико-логические, передачи данных, переходов и битовые. Команда состоит из кода операции и одного или двух операндов. Ряд команд не содержит операндов. Операндом может являться: либо значение, непосредственно заносящееся в команду; либо адрес ячейки, содержащей значение, – прямая адресация; либо адрес ячейки, содержащей адрес, – косвенная адресация.
Режимы адресации
Реализовано пять различных способов адресации для охвата всей памяти данных:
- регистровая адресация, слово команды (16 бит) содержит поле адреса одного, двух регистров РОН или регистров ввода-вывода;
- прямая адресация, когда второе слово команды содержит 16-битный адрес, что позволяет адресоваться ко всей памяти данных (при 1К SRAM ATmega16 используются 10 бит);
- косвенная адресация, когда адрес операнда содержится в регистре X, Y или Z (регистры R26 – R31 из файла регистров используются как регистры-указатели);
- косвенная адресация со смещением, когда в слове команды содержится 6 бит смещения, что позволяет адресовать 63 ячейки, начиная с адреса, указанного в регистрах Y или Z;
- косвенная с предварительным декрементом (преддекрементом -1) или косвенная с последующим инкрементом (постинкрементом +1), когда значения адресных регистров X, Y и Z соответственно декрементируются до выполнения инструкции или инкрементируются после выполнения инструкции.
32 рабочих регистра общего назначения, 64 регистра ввода-вывода и 1024 байт внутреннего статического ОЗУ данных в ATmega16 доступны с помощью всех этих режимов адресации.
Для адресации в программной памяти используются следующие варианты:
- Адресация константы кода памяти с использованием команды LPM (Load Program Memory). Адрес байта константы определяется содержимым регистра Z. Старшие 15 битов определяют адрес слова (что позволяет адресовать память до 32Кслов, внутри кристалла имеем только 8К адресов). Состояние младшего бита определяет выбор младшего байта (LSB = 0) или старшего байта (LSB = 1).
- Непосредственная адресация памяти программ с помощью команд безусловного перехода JMP и вызова подпрограмм CALL. Выполнение программы продолжается с адреса, записанного непосредственно в втором слове команды. При программировании адрес в команде представляется в виде метки (JMP Label, а в программе где-то должна быть эта метка Label:), при трансляции ссылка на метку заменяется конкретным адресом метки.
- Косвенная адресация памяти программ с помощью команд косвенного (Indirect) перехода IJMP и вызова подпрограмм ICALL. Выполнение программы продолжается с адреса, содержащегося в регистре Z (т.е. счетчик команд загружается содержимым регистра Z).
- Относительная адресация памяти программ с помощью команд относительного (Relative) перехода RJMP и вызова подпрограмм RCALL. Выполнение программы продолжается с адреса PC+k+1. Значение относительного смещения k может быть от -2048 до +2047. При программировании смещение в команде представляется в виде метки (RJMP Label, а в программе где-то должна быть эта метка Label:), при трансляции ссылка на метку заменяется конкретным значением смещения адреса метки относительно содержимого программного счетчика к началу программы (отрицательное k) или далее по программе (положительное k).