Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мпт 2013.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
2.12 Mб
Скачать

Организация циклов, ветвлений. Р азветвление программы на две ветки с последующим соединением

Разветвление программы на три ветки с последующим соединением

33. Команды передачи данных. Адресация памяти данных.

Инструкции передачи данных: MOV (копировать регистр); MOVW (копировать пару регистров); LDI (загрузить непосредственное значение); LDS (выполняется загрузка одного байта из ОЗУ в регистр использует для обращения к памяти выше 64 Кбайт регистр RAMPZ); STS (выполняется запись одного байта из регистра в ОЗУ); LD (загружает косвенно один байт из ОЗУ в регистр, положение байта в ОЗУ указывается 16-разрядным регистром-указателем X в регистровом файле); ST (записывается косвенно один байт из регистра в ОЗУ, положение байта в ОЗУ указывается 16-разрядным регистром-указателем X в регистровом файле); Для ST и LD обращение к памяти ограничено текущей страницей объемом 64 Кбайта. Для обращения к другой странице ОЗУ необходимо изменить регистр RAMPX в I/O области. Регистр-указатель X может остаться неизменным после выполнения команды, но может быть инкрементирован или декрементирован. OUT (сохраняет данные регистра Rr в регистровом файле пространства I/O); IN (загружает данные из пространства входа/выхода в регистр Rd); PUSH (помещает содержимое регистра Rd в стек); POP (загружает регистр Rd байтом содержимого стека); LPM (загружает один байт, адресованный регистром Z, в регистр Rd, команда обеспечивает эффективную загрузку констант или выборку постоянных данных из памяти программ).

33.Адресация памяти данных:

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

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

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

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

К освенная адресация данных со смещением

К освенная адресация данных

К освенная адресация данных с преддекрементом

К освенная адресация данных с постинкрементом

34. Директивы ассемблера avr

Компилятор поддерживает ряд директив. Директивы не транслируются непосредственно в код. Вместо этого они используются для указания положения в программной памяти, определения макросов, инициализации памяти и т.д. Список директив:

  • BYTE Зарезервировать байты в ОЗУ

  • CSEG Программный сегмент

  • DB Определить байты во флэш или EEPROM

  • DEF Назначить регистру символическое имя

  • DEVICE Определить устройство для которого компилируется программа

  • DSEG Сегмент данных

  • DW Определить слова во флэш или EEPROM

  • ENDM Конец макроса (ENDMACRO)

  • EQU Установить постоянное выражение

  • ESEG Сегмент EEPROM

  • EXIT Выйти из файла

  • INCLUDE Вложить другой файл

  • LIST Включить генерацию листинга

  • LISTMAC Включить разворачивание макросов в листинге

  • MACRO Начало макроса

  • NOLIST Выключить генерацию листинга

  • ORG Установить положение в сегменте

  • SET Установить переменный символический эквивалент выражения

Директива LIST указывает компилятору на необходимость создания листинга. Листинг представляет из себя комбинацию ассемблерного кода, адресов и кодов операций. По умолчанию генерация листинга включена, однако данная директива используется совместно с директивой NOLIST для получения листингов отдельных частей исходных файлов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]