Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Device at90sl200



Другой важной директивой является директива .include, которая позволяет ассемблеру использовать включаемые файлы. Они выполняют для ассемблера роль словаря. Ассемблер поймет большинство написанных вами выражений, а для остальных ему может потребоваться найти перевод. Например, все имена регистров ввода/вывода и их адреса хранятся во включаемых файлах, поэтому, вместо того чтобы писать адрес $3F, вы можете указать символическое имя регистра SREG. При установке программы ассемблера на компьютер включаемые файлы для различных моделей микроконтроллеров помещаются в определенную папку, но лучше поместить включаемый файл в папку с разрабатываемым проектом. Если предполагается использовать модель 1200, то строка будет иметь вид:

.include " 1200def.inc "

Директивы .nolist и .list

Когда ассемблер обрабатывает написанный код, он генерирует файл листинга, который содержит копию программы с комментариями ассемблера. Совсем не нужно, чтобы в файле листинга оказался довольно объемный текст включаемого файла, Для этого достаточно поставить перед директивой .include директиву .nolist, которая приказывает ассемблеру прекратить копирование считываемых данных в файл листинга. После строки с директивой .include поставьте директиву list, чтобы вновь разрешить ассемблеру вывод данных в файл листинга. и таким образом, строки с директивами .list и .nolist совершенно не влияют на функционирование программы, но благодаря им можно значительно уменьшить размер файла листинга. После заголовка обычно размещаются различные объявления (declarations). Они являются вашими собственными дополнениями к словарю ассемблера — вы можете присвоить используемым регистрам осмысленные названия. Лучше всегда использовать рабочий регистр, называемый temp, для временного хранения данных, и назначить это имя регистру R16. Имена рабочих регистров задаются с помощью директивы .def, как это показано в шаблоне.

Другим типом объявления, которое может использоваться для присваивания числового значения идентификатору, является директива .equ. Она может использоваться для задания своих имен регистрам ввода/вывода. Например, если мы собираемся подключить семисегментный индикатор к порту В и хотим при обращении к регистру PortB писать DisplayPort. Регистр PortB является регистром ввода/вывода с номером 0x18, так что после объявления можно писать в программе DisplayPort и это слово будет интерпретироваться ассемблером как PortB:

.equ DisplayPort = PortB

.equ DisplayPort = 0x18

Эта директива полезна также в том случае, если в различных местах программы используется какое-либо число, значение которого будет изменяться в процессе отладки программы. Можно воспользоваться директивой .equ для задания имени этого числа, а в тексте программы просто ссылаться на это имя. Теперь, если потребуется изменить число, достаточно будет изменить его только в строке с директивой .equ, a не в тех местах, где это число используется.

В следующей после объявлений строке располагается первая команда, выполняемая микроконтроллером при включении питания. В этой строке рекомендуется поместить команду перехода к секции, помеченной меткой Init, в которой выполняются все начальные настройки AVR. Для этого используется команда rjmp:





Дата публикования: 2015-02-03; Прочитано: 460 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...