Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Инструментальные средства разработки программ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
107.01 Кб
Скачать

III. Особенности разработки программ в masm

Для успешной работы с ассемблером MASM корпорации Microsoft в современных операционных средах необходимо иметь версию 6.13 этого пакета или выше. В него входят следующие основные программы:

masm.exe — ассемблер;

ml.exe — ассемблер и компоновщик (Masm and Link); link.exe — компоновщик;

cv.exe — отладчик (CodeView);

lib.exe, implib.exe, nmake.exe, cref.exe, h2inc.exe, exehdr.exe, cvpack.exe, helpmake.exe, rm.exe, undel.exe, exp.exe — вспомогательные утилиты.

В пакете MASM изначально предпринимались попытки совместить удобство средств программирования, свойственных языкам высокого уровня, с традиционными средствами машинно-ориентированных языков. Например, буква М в названии пакета означает слово macro, то есть возможность создания макроопределений (или макросов), представляющих собой именованные группы команд. Их можно вставлять в программу в любом месте, указав только имя группы. Когда-то такая возможность действительно была отличительным свойством этого пакета, но сейчас этим никого не удивишь — макросредства есть во всех ассемблерах для платформы Intel (например, TASM), но, тем не менее, название осталось.

С помощью пакета MASM разработка программ выполняется традиционным для ассемблерного программирования способом — запуском отдельных программ трансляции, компоновки и отладки. Для этого используются программы masm.exe, ml.exe, link.exe и cv.exe.

Во избежание путаницы необходимо отметить, что трансляция исходного файла может производиться двумя программами: masm.exe и ml.exe. В чем разница? До выхода MASM версии 5.1 включительно программа masm.exe была самостоятельным транслятором ассемблера. Начиная с MASM версии 6.0 трансляция ассемблерного файла обычно выполняется программой ml.exe, которая кроме трансляции файла вызывает компоновщик link.exe. Это изменение сделано с целью унификации вызовов

компиляторов командной строки для всех поддерживаемых этой фирмой языков программирования. К примеру, компиляцию программы на языке С из командной строки выполняет программа cl.exe. Ее задачи — компиляция исходной программы на языках C/C++ и, при отсутствии синтаксических ошибок, компоновка и формирование исполняемого модуля. Аналогичные задачи решает и программа ml.exe. Хотя в пакете MASM 6.13 допустимо использование программы masm.exe, нужно иметь в виду, что запуск link.exe в этом случае также должен выполняться отдельно. Наличие программы masm.exe в пакете MASM 6.13 можно объяснить соображениями совместимости с предыдущими версиями пакета, поэтому особого смысла в ее использовании нет.

Далее приведены форматы командных строк для запуска программ ml.exe, masm.exe и link.exe, а описание их ключей можно найти в документации.

Командная строка ml.exe имеет вид

ml [ключи] исх_файл_1 [[ключи] исх_файл_2] . . . [/link ключи_11пК]

Ключи командной строки для ml.exe чувствительны к регистру. Командная строка masm.exe имеет вид

masm [ключи] исх_файл [, [объектный_файл] [, [файл_листинга] [, [файл_перекрестных_ссылок]]]]

Компоновщик компонует (объединяет) объектные файлы и библиотеки в исполняемый файл или динамически компонуемую библиотеку (DLL). Командная строка Link.exe имеет вид

link [ключи] объект_файлы [,[исполн_файл] [,[файл_карты] [,[файлы_6иблиотек]

[ , [ с ! е т _ ф а й л ] ] ] ] ] [ ; ]

Для эффективной работы с MASM нужно провести некоторую дополнительную работу. Исполняемые файлы пакета MASM 6.13 и выше находятся в двух каталогах: ..\BIN и ..\BINR. Для удобства работы их лучше объединить в одном каталоге, к примеру, в каталоге ..\WORK. После этого остается поместить туда исходный файл. Пример командной строки для получения пригодного к отладке исполняемого модуля может быть следующим:

ML.EXE /Zi /Fl prg.asm

Если нет синтаксических ошибок, то можно запускать отладчик:

CV.EXE prg.exe

Литература

  1. Юров В.И. Assembler. Учебник для ВУЗов. 2-е изд. – СПб.: Питер, 2003 – 637 с.: ил.

3