Введение в аСсемблер PIC-контроллеров (MPASM)
Подготовка исходного текста программы (ASM)
Текст управляющей программы на языке ассемблера (исходный файл) может быть создан в любом текстовом редакторе ASCII (например в редакторе Блокнот. После сохранения в фаил надо только переименовать расширение .txt на .asm). В среде MPLAB имеется специализированный текстовый редактор, который выделяет поля команды разным цветом, что существенно уменьшает число формальных ошибок при подготовке исходного текста программы. Подготовленный исходный текст программы должен быть транслирован, т.е. переведен в двоичный код. Чтобы трансляция прошла правильно, текст программы должен удовлетворять следующим формальным требованиям:
1. Каждая строка программы рассматривается как новая команда. Максимальная ширина строки 255 символов.
2. Каждая строка исходного файла может содержать до четырех информационных полей:
метка – это мнемоническая ссылка на адрес команды, константы или переменной. Метки должны начинаться с первой позиции строки. Метки от мнемоник должны отделяться двоеточием, пробелами или символами табуляции;
команда – мнемоническое обозначение кода операции. Мнемоники команд должны начинаться со второй (и далее) позиции;
операнды – следуют за мнемоникой команды и отделяются от команды одним или несколькими пробелами, между собой должны разделяться запятыми;
комментарии – могут следовать за операндами, мнемониками и метками, если они есть. Комментариям должен предшествовать символ точки с запятой. Любой текст после точки с запятой до конца строки воспринимается транслятором как комментарии.
3. Допускаются строки, не содержащие команд. Такие строки могут оставаться пустыми или содержать метки и/или комментарии.
4. Начало текста программы специальных директив или признаков не требует, потому что уже первая строка в текстовом редакторе считается ассемблерной командой. Как и все другие строки, она может быть пустой или содержать комментарии. Окончание программы всегда обозначается директивой end, которая никаких действий транслятора не вызывает и служит только признаком окончания программы.
Пример исходного файла MPASM простейшей программы:
list p=16c54
Dest equ Н'0В'
org H'01FF'
goto Start
Start movlw H'A'
movwf Dest
bcf Dest,3
goto Start
end
Структура исходного текста программы в простейшем случае видна из приведенного выше примера. В общем случае программа должна состоять из следующих блоков:
- заголовок программы, который должен содержать название программы и объяснение основных ее функций с форматами данных. Это делается с помощью комментарий в первых строчках программы (в примере отсутствует для упрощения);
- управление процессом трансляции (в примере директивы list и org);
- определение переменных и констант;
- секция запуска при включении питания (goto start совместно с директивой org);
- тело программы (от метки start до директивы end).
В тексте программ на ассемблере присутствуют два типа операций. Первый вид это команды для процессора, называемые инструкциями, которые компилятором преобразуются в машинные коды. Второй вид операций это директивы, которые являются командами для компилятора и компоновщика. С помощью директив производится только управление процессом трансляции, а кодов исполняемых процессором (машинных) команд по ним не генерируется.
Трансляция программ
Для трансляции программ PIC-контроллеров используются компилятор MPASM и компоновщикMPLINK.
Компилятор MPASM может использоваться в двух режимах:
для генерации абсолютного кода, который может быть загружен непосредственно в микроконтроллер;
для генерации объектных файлов, которые связываются с другими компилированными модулями.
По умолчанию MPASM генерирует абсолютный код. При компиляции исходного файла в этом режиме, все значения адресов должны быть явно указаны в исходном файле или во включаемых файлах. Если компиляция выполнена без ошибок, то будет создан двоичный код программы (HEX файл
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.