Микропроцессорная техника: практический курс : учебное пособие для студентов Физико-технологического института, обучающихся по направлениям подготовки "Ядерная физика и технологии", "Биомедицинская инженерия"
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ АССЕМБЛЕРА
Download 0.63 Mb. Pdf ko'rish
|
978-5-321-02171-21 2012 (1)
- Bu sahifa navigatsiya:
- 1.1. Язык ассемблера ASM-51
1. ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ АССЕМБЛЕРА
Приведены необходимые данные по программированию на языке ассемблера микроконтроллеров семейства x51. Вначале рассмотрены общие вопросы программирования на языке ассемблера, а затем при- ведены примеры конкретных программ и разобраны типовые задачи, предлагаемые студентам при выполнении практических занятий. 1.1. Язык ассемблера ASM-51 1.1.1. От исходного текста к машинным кодам Язык программирования ASM-51 поддерживает модульное напи- сание программ. Графическое изображение процесса подготовки про- граммы на языке программирования ASM-51 приведено на рис 1.1. Обсудим этапы подготовки программы более детально. Рис. 1.1. Процесс подготовки программы на языке программирования ASM-51 Исходный модуль – это файл, в котором хранится исходный текст программы (или просто – программа), написанный на языке ассем- блера. Для исходного текста программы принято использовать одно из следующих расширений имени файла: asm, a51, srs или s51. Ис- ходный текст программы можно написать, используя любой тексто- вый редактор, сохраняющий результат редактирования в кодировке ASCII. 7 1. Программирование на языке ассемблера Исходный модуль подается на вход программы ассемблер, а на выходе при этом получают другой модуль, который называется объ- ектный модуль. Объектный модуль – это файл с промежуточным представлением отдельного модуля программы, получаемый в результате трансляции исходного модуля. Объектный файл содержит в себе бинарный код программы , который может быть объединен с другими объектными файлами при помощи редактора связей (компоновщика) для получе- ния готового исполняемого модуля либо библиотеки. Иными слова- ми, объектный модуль – это программа на машинном языке с нераз- решенными внешними ссылками. Получить объектный модуль мож- но, указав имя исходного модуля программы в качестве параметра программы-транслятора в командной строке или строке командного файла: asm51.exe modul.asm Программа редактор связей (компоновщик) позволяет объединять несколько объектных файлов (модулей) в один. Для объединения нес- кольких модулей в исполняемую программу имена всех модулей пе- редаются в редактор связей в качестве параметров при запуске этой программы. Пример вызова редактора связей из командной строки для объединения трёх модулей: rl51.exe main.obj modul1.obj modul2.obj Результатом работы редактора связей является исполняемый модуль. Имя исполняемого модуля программы по умолчанию совпадает с име- нем первого объектного файла в списке параметров строки запуска ре- дактора связей. Исполняемый модуль программы записывается в файл без расширения. Формат файла представляет собой двоичное пред- ставление каждого байта данных без каких-либо адреса, контрольной суммы или описания формата. Этот формат используют, например, для передачи данных внутрисхемному эмулятору. При компиляции исходного текста программы транслятор состав- ляет таблицу ссылок на константы, переменные и команды. Если при втором просмотре исходного текста программы, во время которо- го формируется объектный модуль, транслятор не обнаружит имени переменной или метки в своей таблице, то будет сформировано сооб- щение об ошибке и объектный модуль не будет сформирован. Для того чтобы транслятор вместо формирования сообщения об ошибке записал в объектный модуль информацию, необходимую для редактора связей, нужно использовать специальные директивы ссы- лок на внешние переменные или метки. Обычно эти директивы назы- 8 1.1. Язык ассемблера ASM-51 ваются PUBLIC (общие) и EXTRN (внешние). Для ссылки на пере- менную или метку используется директива EXTRN, в которой пере- числяются через запятую метки и переменные. Редактор связей дол- жен сначала получить их точное значение из другого модуля, а затем модифицировать все команды, в которых эти метки или переменные используются. Для того чтобы редактор связей мог осуществить свя- зывание модулей в единую программу, переменные и метки, объяв- ленные, по крайней мере, в одном из модулей как EXTRN, в другом модуле должны быть объявлены как доступные для всех модулей при помощи директивы PUBLIC. Многие микропроцессорный устройства (программаторы, стенды и т.п.) не могут напрямую работать с объектным форматом испол- няемого модуля программы, поэтому для загрузки машинного кода в них необходимо преобразовать объектный формат исполняемого модуля в общепринятый гексадецимальный (hex) код. При преобра- зовании форматов вся отладочная информация теряется. Машинный код процессора в гексадецимальном формате называется загрузочным модулем. Загрузочный модуль программы получают при помощи програм- мы-преобразователя oh.exe, передав ей в качестве параметра имя файла исполняемого модуля программы: oh.exe main Полученный файл main.hex загружается в разрабатываемое устрой- ство или программный симулятор для последующей отладки. 1.1.2. Исходный текст программы Исходный текст программы представляет собой последователь- ность операторов языка, сгруппированных в сегменты и оформленных в виде файла. Download 0.63 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling