Ассемблирование и отладка программы

Страницы работы

Содержание работы

Ассемблирование и отладка программы.

Перед запуском эмулятора необходимо сформировать из текстового файла с расширением .asm, содержащего отлаживаемую программу на языке ассемблера, исполняемый файл, т.е. файл, который будет загружен в ПЗУ микропроцессора. Исполняемый файл должен иметь расширение .tsk или .obj.

Ассемблер X8051 формирует из входных текстовых файлов с расширением .asm, промежуточные объектные файлы с расширением .obj, которые преобразуются в процессе связывания (линкования) программой link.exe в исполняемый файл с расширением .tsk, пригодный для загрузки в отладчик emu51.exe.

Некоторые простые ассемблеры, предназначенные для преобразования одного файла и, следовательно, не использующие процесс линкования, сразу формируют исполняемые файлы с расширениями .obj или .bin.

Если используемый ассемблер формирует исполняемый файл с расширением, отличным от .tsk или .obj, то его надо переименовать, изменив расширение на .tsk или .obj.

Ассемблер X8051.exe

Ассемблер X8051 фирмы 2500A.D. работает в DOS. Для вызова ассемблера необходимо запустить программу X8051.exe: ввести в командную строку имя файла X8051 и нажать клавишу ENTER. Его можно запустить и из Windows двойным щелчком левой клавиши мыши. Экстренный выход из ассемблера – Ctrl-С (при нажатой клавише Ctrl, нажать клавишу С).

Исходный текстовый файл с расширением .asm должен находится в одной папке с программой ассемблера.

Ассемблер запросит, куда и как вывести листинг программы (текстовый файл с расширением .lst, содержащий отчет о трансляции программы с указанием обнаруженных ошибок). Листинг удобно использовать на этапе отладки программы.

ListingDestination? (N,T,D,E,L,<CR>=N).

где аббревиатуры означают следующее:

N = печати нет;

T = вывод на терминал  (экран монитора);

P = вывод на принтер;

D = запись на жесткий диск;

E = вывести только ошибки;

L = печать вкл/выкл

<CR> = по умолчанию.

Листинг наиболее удобно выводить на диск (ввести D и ENTER). Если ввести только ENTER, то установится по умолчанию <CR>=N, и листинг программы никуда выведен не будет.

Затем ассемблер запросит имя текстового файла с программой:

Inputfilename:

При вводе имени файла расширение .asm можно опустить.

Далее ассемблер запросит имя выходного файла:

Outputfilename:

Если ввести ENTER, то имя выходного файла будет образовано из имени входного с расширением .obj. Если имя введенного файла не имеет расширения, то ему будет приписано расширение .obj.

Если при трансляции обнаружены ошибки, то в файл с расширением .obj результаты трансляции не записываются (объем файла равен нулю). Файл листинга создается всегда. При наличии ошибок файл листинга позволяет проанализировать их причину и ввести необходимую коррекцию в исходный текстовый файл перед повторным ассемблированием.

На этапе ассемблирования устраняются синтаксические ошибки в программе (ошибки в записи мнемоники команд, операндов, меток).

Редактор связей link.exe

Редактор связей позволяет связать несколько (или один) объектных файлов, полученных ассемблером X8051 в один исполняемый файл. Объектный файл с расширением .obj должен находится в одной папке с программой редактора связей.

После запуска программы link.exe, редактор связей запрашивает имя первого объектного файла:

InputFilename:

Имя файла необходимо вводить без его расширения .obj.

Если файл содержит несколько секций (например, секцию программного кода CODE и секцию данных DATA), то далее будут запрошены их начальные адреса:

Enter Offset for ‘CODE’  :

Enter Offset for ‘DATA’  :

Если секции образуют изолированные области памяти, то необходимо ввести начальные адреса каждой из областей, завершая каждый ввод нажатием клавиши ENTER.

Если следующая секция является продолжением предыдущей, то после ввода адреса первой секции CODE, вместо адреса следующих секций нажимается клавиша ENTER.

Далее редактор связей запрашивает имя второго объектного файла:

InputFilename:

Если обработке подвергается единственный файл, то необходимо ввести ENTER, после чего редактор связей перейдет к следующему запросу, в противном случае необходимо ввести имя файла. После ввода имени файла последует запрос о начальных адресах секций данного файла. Если эти секции являются продолжением одноименных секций первого файла, то необходимо нажать клавишу ENTER без ввода адреса. После ввода данных обо всех объектных файлах, на очередное приглашение ввести имя необходимо ответить нажатием клавиши ENTER.

Далее редактор связей запрашивает имя выходного файла:

OutputFilename:

При обработке единственного объектного файла и формировании выходного файла с его именем, ввести ENTER. В противном случае ввести имя файла без расширения.

После определения имени выходного файла редактор связей запрашивает имя используемой библиотеки:

LibraryFilename:

При использовании библиотеки, ввести ее имя и нажать клавишу ENTER, в противном случае просто нажать ENTER.

После этого редактор связей запрашивает параметр (или параметры), определяющие тип выходного файла:

Parameter (D,S,A,M,Z,X,H,E,T,1,2,3,<CR>):

где параметры означают создание следующих типов файлов:

D – файл с расширением .map, содержащий карту памяти, символьную таблицу глобальных переменных и все ошибки связывания (линкования) файлов;

S,A,M,Z – символьные файлы для процесса отладки в разных форматах;

X – исполняемый файл с расширением .tsk;

H,E – шестнадцатеричные файлы формата фирмы Intel;

T - шестнадцатеричный файл формата фирмы Tektronix;

1,2,3 - файлы формата фирмы Motorola;

Для создания исполняемого файла с расширением .tsk необходимо ввести параметр X, а для получения одновременно и карты памяти – ввести два параметра XD (или DX). В последнем случае будут созданы два файла с одинаковым именем и разными расширениями: .tsk и .map. Регистр ввода параметров не имеет значения.

На этапе связывания (линкования) выявляются ошибки, связанные с компоновкой секций, а также переходов в командах с относительной адресацией.

Эмулятор emu51.exe

Эмулятор (отладчик) представляет собой системную программу, предназначенную для локализации и исправления логических ошибок в пользовательской программе. Загружаемый файл с расширением .tsk (.obj) должен находится в одной папке с программой эмулятора

Эмулятор emu51.exe работает в среде DOS. Его можно запустить из Windows в не полноэкранным режиме. Для перехода в полноэкранный режим или возврата из него ввести ALT+ENTER. Для экстренного завершения работы в DOS ввести Ctrl+C.

При запуске эмулятора выполняется инициализация регистров: в указатель стека SP записывается число 07h, в регистры параллельных портов P0…P3 записывается FFh, переводя все разряды портов в режим чтения, а разряды остальных регистров, включая программный счетчик PC, устанавливаются в 0.

Похожие материалы

Информация о работе