Подготовка программы к выполнению
Прежде всего на компьютере должен быть установлен пакет Турбо Ассемблера TASM. Если его нет, то программное обеспечение, необходимое для работы с ассемблером, можно скачать здесь TASM.
Процесс подготовки и отладки программы на языке ассемблера включает этапы подготовки файла с исходным текстом, его трансляции и компоновки и, наконец, отладки программы с помощью специальной программы интерактивного отладчика.
Подготовка исходного текста программы выполняется с помощью любого текстового редактора. Файл с исходным текстом должен иметь расширение ASM. При выборе редактора для подготовки исходного текста программы следует иметь в виду, что многие текстовые процессоры (например, Microsoft Word) добавляют в выходной файл служебную информацию о формате (размер страниц, типы используемых шрифтов и др.). Поэтому следует воспользоваться редактором, выводящим в выходной файл "чистый текст", без каких-либо управляющих символов. К таким редакторам относятся, например, программа Блокнот.
Трансляция исходного текста программы состоит в преобразовании предложений исходного языка в коды машинных команд и выполняется с помощью транслятора с языка ассемблера (т. е. с помощью программы ассемблера). Можно воспользоваться пакетами TASM корпорации Borland или Microsoft MASM. Трансляторы различных разработчиков имеют некоторые различия, в основном в части описания макросредств. Однако входной язык (т. е. мнемоника машинных команд и других операторов и правила написания предложений ассемблера) для всех ассемблеров одинаков. В результате трансляции образуется объектный файл с расширением .OBJ.
Компоновка объектного файла выполняется с помощью программы компоновщика (редактора связей). Эта программа получила такое название потому, что ее основное назначение - подсоединение к файлу с основной программой файлов с подпрограммами и настройка связей между ними. Однако компоновать необходимо даже простейшие программы, не содержащие подпрограмм. Дело в том, что у компоновщика есть и вторая функция - изменение формата объектного файла и преобразование его в выполнимый файл, который может быть загружен в оперативную память и выполнен. Файл с программой компоновщика обычно имеет имя LINK.EXE, хотя это может быть и не так. Например, компоновщик корпорации Borland назван TLINK.EXE. Компоновщик необходимо брать из одного пакета с ассемблером. В результате компоновки образуется загрузочный, или выполнимый, файл с расширением .ЕХЕ.
Отладка готовой программы может выполняться разными.методами, выбор которых определяется структурой и функциями отлаживаемой программы. Свою специфику отладки имеют, например, резидентные программы, обработчики аппаратных прерываний, драйверы устройств и другие классы программ. В целом наиболее удобно отлаживать программы с помощью какого-либо интерактивного отладчика, который позволяет выполнять отлаживаемую программу по шагам или с точками останова, выводить на экран содержимое регистров и областей памяти, модифицировать (в известных пределах) загруженную в память программу, принудительно изменять содержимое регистров и выполнять другие действия, позволяющие в наглядной и удобной форме контролировать выполнение программы.
При использовании пакета Borland следует взять "турбо-дебаггер" TD.EXE, при трансляции и компоновке программы с помощью пакета Microsoft - отладчик Codeview (файл CV.EXE).
В данном практикуме будет предполагаться, что предложенные примеры выполняются с помощью пакета TASM (транслятор TASM.EXE, компоновщик TLINK.EXE, отладчик TD.EXE).
Если файл с исходным текстом программы назван P.ASM, то строка вызова ассемблера может иметь следующий вид:
tasm /z /zi /n p, p, p
(Еще раз напоминаем, что как в тексте программы на языке ассемблера, так и при вводе с клавиатуры командных строк можно с равным успехом использовать и прописные и строчные буквы.)
Ключ /z разрешает вывод на экран строк исходного текста программы, в которых ассемблер обнаружил ошибки (без этого ключа поиск ошибок пришлось бы всегда проводить по листингу трансляции).
Ключ /zi управляет включением в объектный файл номеров строк исходной программы и другой информации, не требуемой при выполнении программы, но используемой отладчиком.
Ключ /n подавляет вывод в листинг перечня символических обозначений в программе, от чего несколько уменьшается информативность листинга, но существенно сокращается его размер.
Стоящие далее параметры определяют имена файлов: исходного (P.ASM), объектного (P.OBJ) и листинга (P.LST). Расширения имен файлов можно не указывать.
Строка вызова компоновщика может иметь следующий вид:
tlink /v /х р, р
Ключ /v передает в загрузочный файл символьную информацию, позволяющую отладчику TD выводить на экран полный текст исходной программы, включая метки, комментарии и пр. Стоящие далее параметры обозначают имена модулей: объектного (P.OBJ) и загрузочного (Р.ЕХЕ). Ключ /х подавляет формирование карты загрузки (файла с листингом компоновки P.MAP), без которого вполне можно обойтись.
Как уже отмечалось, компоновщик создает загрузочный, готовый к выполнению модуль в формате .ЕХЕ. Запуск подготовленной программы Р.ЕХЕ осуществляется командой
р.ехе
или просто
p
Если программа не работает должным образом, необходимо прибегнуть к помощи интерактивного отладчика. Отладчик пакета TASM запускается командой
td p
где р (или р.ехе) - имя файла с отлаживаемой программой. По умолчанию отладчик загружает файл с расширением .ЕХЕ. В процессе работы отладчик использует также файл с исходным модулем P.ASM, поэтому перед отладкой не следует переименовывать ни исходный, ни выполнимый файлы.
Целесообразно создать командный файл, автоматизирующий выполнение однотипных операций трансляции и компоновки. Текст командного файла может быть таким:
Приведенный текст составлен в предположении, что путь к программам пакета TASM указан в команде PATH. Если это по каким-либо причинам не так, в командный файл следует включить полную спецификацию файлов ассемблера и компоновщика, например (если весь пакет находится на диске D: в каталоге TASM):
d:\tasm\tasm /z /zi /n p,p,p
Создайте файл с программой. Подготовьте программу к выполнению. Запустите программу и убедитесь, что она работает правильно: выводит на экран нужный текст и не нарушает работу компьютера.