3. Порядок выполнения работы
3.1. Создание каталога для работы
На панели Total Commander выберите диск D. Найдите папку (каталог) Users и раскройте ее. Затем найдите папку ПО и раскройте ее. Выберите папку с именем своей группы (ЭВС-31, ЭВС-32). Раскройте ее, и внутри нее создайте новую папку (с помощью клавиши F7) с именем, соответствующей вашей фамилии. Раскройте созданную папку. Затем на соседней панели TotCom выберите диск D, папку ПО. Найдите папку с именем МК51 и раскройте ее. Затем скопируйте из нее все файлы в созданную вами папку на диске D. Убедитесь, что в созданной вами папке появились все файлы из МК51. В дальнейшем вы будете создавать и отлаживать в вашей папке все программы в процессе выполнения лабораторных работ.
3.2. Ассемблирование программ
Рассмотрим методику ассемблирования на примере простейшей программы, которая реализует бесконечный цикл повторения. С этой целью на панели TotCom раскройте созданную вами папку. Нажмите комбинацию клавиш Shift-F4. В открывшемся диалоговом окне запишите имя создаваемого файла: proba.asm. При наборе программы следует придерживаться следующих рекомендаций:
Метки в программе должны обязательно начинаться с 1-ой позиции курсора.
Хотя программы, использующие DOS, в большинстве случаев не различают букв верхнего и нижнего регистров клавиатуры (т.е. H и h воспринимаются одинаково), рекомендуется метки, команды и имена регистров записывать заглавными буквами, как это принято в учебной литературе.
С целью экономии времени можно не набирать комментарии.
Текст программы
LOOP: NOP ; Пустая команда
NOP
NOP
JMP LOOP ; Переход на метку LOOP (зацикливание программы)
END ; Конец программного модуля
После выхода из редактора убедитесь, что в вашей папке появился файл программы на языке Ассемблера с именем proba.asm.
Набранную исходную программу необходимо оттранслировать (перевести в машинные коды микроконтроллера) с помощью программы-транслятора. Эта программа находится в файле x8051.exe. Процесс трансляции (ассемблирования) может производиться в двух режимах:
в диалоговом;
в режиме командной строки.
В диалоговом режиме программа выдает на экран компьютера несколько подсказок, на которые требуется ответить. Рассмотрим процесс ассемблирования программы, записанной в файле proba.asm.
На панели TotCom с помощью курсора выбираем файл x8051.exe и нажимаем клавишу Enter (Ввод). Открывается окно ассемблера и программа выдает первую подсказку:
Listing Destination (N,T,D,E,L,P,<CR>=N):
Это сообщение определяет вид устройства, на которое будет выводиться листинг программы:
N – листинг не выводится;
T – вывод на терминал (экран компьютера);
D – диск (вывод в файл);
P – вывод на принтер;
<CR> означает Enter (возврат каретки).
Наберите букву Т и нажмите Enter.
Следующая подсказка:
Input Filename:
Необходимо напечатать имя входного файла. По умолчанию можно не вводить
расширение .asm. Напечатайте proba и нажмите Enter.
Следующая подсказка:
Output Filename:
Компьютер запрашивает имя выходного файла. Этот файл будет иметь расширение .obj. Если имя выходного файла совпадает с именем входного (что обычно и имеет место), то следует просто нажать клавишу Enter.
После этих действий произойдет запуск ассемблирующей программы, и на экране появятся сообщения ассемблера. Вначале выводится заголовок, затем листинг программы и в конце – информация о числе строк и количество ошибок при трансляции. Ассемблирование считается успешным, если появится сообщение:
Assembly Errors: 0.
Если программа-ассемблер выдает сообщения об ошибках, их нужно исправить в режиме редактирования исходного файла.
Окно программы-ассемблера закрывается, как обычно в WINDOWS, с помощью мыши.
Задание. Выполните ассемблирование программы proba.asm. без вывода листинга программы.
Для запуска программы ассемблера в режиме командной строки необходимо ввести в командную строку DOS имя программы-ассемблера и имя исходного файла. В простейшем случае, когда не требуется вывода листинга программы, и имя выходного файла совпадает с именем входного файла, командная строка должна выглядеть следующим образом:
D:\ ... >x8051.exe proba.asm
Текст можно набирать с клавиатуры, но удобнее имена файлов переносить с панели в командную строку следующим образом:
а) выделяем курсором на панели файл x8051.exe и нажимаем клавиши Ctrl-Enter.
В результате имя файла оказывается в командной строке;
б) выделяем курсором файл proba.asm и нажимаем клавиши Ctrl-Enter.
Для запуска ассемблера нажимаем Enter.
Результатом работы программы-транслятора является объектный файл proba.obj.
Задание. Выполните выше указанные действия и убедитесь, что такой файл появился на панели TotCom.
Полученный объектный файл с расширением .obj должен быть обработан программой-компоновщиком (по-другому редактором связей). В пакете кросс-средств 2500 A.D. компоновщик находится в файле link.exe. Программисты часто называют эту программу «линкер».
Результатом работы компоновщика могут быть файлы с различными расширениями, из которых наибольшее применение получили:
Файлы с расширением .hex. Это файлы в формате Intel Hex или просто hex-файлы. Они используются для отладки программ с микроконтроллерами фирмы Intel или совместимыми с ними.
Файлы с расширением .tsk. Это исполняемые файлы. Они используются для загрузки в память программ и при программировании ПЗУ. По выполняемым функциям они соответствуют файлам с расширением .exe в DOS и Windows.
Запуск программы-компоновщика может быть произведен двумя способами:
в диалоговом режиме;
в режиме командной строки.
Диалоговый режим используется преимущественно при компоновке многомодульных программ, его мы рассмотрим позже.
Режим командной строки удобно использовать при компоновке одномодульных программ. Рассмотрим этот режим на примере обработки файла proba.obj.
Если нам необходим выходной файл в hex-формате и имя его повторяет имя входного файла, т.е. будет proba.hex, то в командной строке должно быть:
D:\... > link.exe –c proba.obj.
Имена файлов можно перенести с панели TotCom из вашей папки, а опцию ”–с” нужно набрать с клавиатуры. Запуск линкера производится, как обычно, клавишей Enter.
Внимание! Для правильной работы линкера необходимо, чтобы перед опцией “-c” и после нее был только один символ пробела. Это нужно проверить визуально.
Результаты работы программы выводятся на экран в следующем виде: вначале заголовок, затем карта загрузки (LOAD MAP), где указаны начальный и конечный адреса программы и ее размер, далее следуют наименование файлов и их форматы. Компоновка считается успешной, если выдается сообщение:
Link Errors: 0
В результате работы компоновщика в каталоге появится новый файл proba.hex.
Задание. После выполнения вышеуказанных действий закройте окно линкера и убедитесь, что такой файл появился на панели TotCom.
