Меткой может быть имя переменной или адрес в коде, для того чтобы упростить доступ к памяти и работу с инструкцией JUMP соответственно. Метки следует всегда начинать с первой колонки, и наоборот, каждое выражение, начинающееся в первой колонке, будет рассматриваться компилятором как метка.
Следующим в структуре файла исходного кода (Приложение 4) идет раздел объявления файлов включения (*.inc), в которых хранятся прототипы импортируемых функций и переменных, распределение регистров и памяти конкретного семейства микроконтроллеров фирмы STM.
Например, файл ST7Lite2.inc содержит прототипы предопределенных переменных (распределение регистров и памяти) для МК ST7FLite29. Общая структура проекта для МК ST7FLite29 представлена на рисунке 2.6.
По умолчанию все переменные, константы и т.д. в исходном коде являются локальными, т.е. недоступными извне. Если же предполагается экспортировать эти данные в другой модуль, для этого необходимо объявить их глобальными.
Рис. 2.7. Схема взаимодействия между файлами проекта. Использование директив PUBLIC, EXTREN.
Символы, как и константные типы данных, определяются в исходном файле и не могут изменяться во время выполнения программы. Основным отличием является то, что их значения доступны только на время сборки (времени ассемблирования), а не во время выполнения программы. Особую ценность символы представляют для генерации константных данных. Символические значения определяются при помощи оператора EQU. Например:
Перед тем как в программном коде использовать переменные и константы, они должны быть изначально объявлены. Для выделения части оперативной памяти RAM (для переменных) необходимо использовать ключевые слова DS.b и DS.w для определения переменной типа байт (byte - 8 бит) и типа слово (word - 16 бит) соответственно:
Директивы BYTES, WORDS определяют 8 или 16 битовый адрес для меток, следующих за ними. Следовательно, ключевое слово BYTES необходимо располагать перед определением аппаратных регистров и переменных в оперативной памяти (RAM) на «нулевой странице» (0..0FFh). Директиву WORDS следует использовать во всех остальных случаях, например, при определении переменных в RAM на других страницах, EEPROM переменных, для программного кода, констант и векторов прерывания в памяти ROM.