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

Состав пакета масм

В курсе программирования студенты знакомятся с интегрированными средами разработки программных приложений (Integrated Development Environment, IDE). Примерами их могут быть QT Creator, Delphi, Kylix, Visual Studio. Все эти среды позволяют создавать приложения, пользуясь языками программирования высокого уровня – С, С++, Object Pascal.

MASM32 – это не среда разработки. Это набор ресурсов, предназначенный для низкоуровневого программирования (то есть на уровне машинных команд процессора). Такие продукты на английском называются «набор разработчика программ» (Software Developer’s Kit).

MASM32 состоит, во-первых, из программ служебного назначения. Самые главные из них – это компилятор ML.EXE и компоновщик LINK.EXE. Без этих двух программ ассемблерную программу изготовить вообще невозможно. Кроме того, для изготовления работоспособных под Windows программ нужен еще ряд ресурсов – библиотек и включаемых файлов:

\masm32\include\windows.inc

\masm32\include\masm32.inc

\masm32\include\gdi32.inc

\masm32\include\user32.inc

\masm32\include\kernel32.inc

\masm32\include\Comctl32.inc

\masm32\include\comdlg32.inc

\masm32\include\shell32.inc

\masm32\include\oleaut32.inc

\masm32\include\ole32.inc

\masm32\include\msvcrt.inc

\masm32\include\dialogs.inc

\masm32\macros\macros.asm

\masm32\lib\masm32.lib

\masm32\lib\gdi32.lib

\masm32\lib\user32.lib

\masm32\lib\kernel32.lib

\masm32\lib\Comctl32.lib

\masm32\lib\comdlg32.lib

\masm32\lib\shell32.lib

\masm32\lib\oleaut32.lib

\masm32\lib\ole32.lib

\masm32\lib\msvcrt.lib.

Они все обычно подключаются к разрабатываемой программе одной строкой-директивой.

По большому счету, их и достаточно. Всё остальное, что есть в МАСМе, направлено на облегчение работы с ним. Всякого рода примеры, шаблоны, библиотеки, файлы помощи… Слабой попыткой создать что-то типа «среды разработки» следует считать наличие в МАСМе программы qeditor.exe. Это текстовый редактор, но с возможностью вызывать из меню различные пакетные файлы из папки \masm32\bin. В МАСМе есть еще разные ехе-утилиты. Есть совершенно необходимые – например, компилятор ресурсов rc.exe . Есть просто полезные, к примеру, dumpbin.exe.

Как показывает практика, программирование на ассемблере при установленном на компьютере SDK MASM32 вполне успешно ведется с применением следующего дополнительного софта:

  • Текстового редактора Notepad++;

  • Файлового менеджера Total Commander;

  • Отладчика OllyDbg;

  • Байтового редактора HexWorkshop.

Большую роль при программировании на ассемблере играет системная консоль Windows – CMD.EXE. Хотя на ассемблере можно писать и приложения с GUI, но подавляющая часть ассемблерных программ – всё-таки консольные. Им просто не нужен графический интерфейс, за ним теряется суть выполняемых в программе действий.

Для удобного вызова программ и пакетов, которые входят в МАСМ, придется произвести кое-какие перенастройки в операционной системе.

Первое, что нужно будет сделать – это дописать в системную переменную path пути доступа к нескольким папкам SDK MASM32: bin, lib, macros. Цель этого действия – сделать возможным запуск программ МАСМ32 из любой папки, а не только той, в которой они физически размещены. Дело в том, что если командная строка или пакетный файл делают попытку доступа к некоему файлу, то он (искомый файл) сначала ищется в текущей активной папке. Если он там не находится, то ОС обращается к системной строковой переменной path. Эта строка состоит из списка путей к папкам, разделенных символом «;». Оттуда извлекаются по очереди эти пути и система ищет искомый файл в каждой папке по очередному пути. Если где-то искомый файл находится – поиск завершен успешно. Если система перебрала все пути в path и файл НЕ обнаружен, то фиксируется ситуация «файл не найден» с выводом соответствующего сообщения.

Отсюда, кстати, следует, что сообщение «файл не найден» не означает, что такого файла на компьютере нет вовсе. Это только означает, что его нет в текущей папке и папках из path.

Если мы хотим, чтобы, к примеру, компилятор ML.EXE мог быть вызван из вашей рабочей папки, нужно, чтобы путь d:\masm32\bin попал в строку path, потому что компилятор находится именно в ней.

Второе, что надо будет сделать – это назначить Notepad++ обработчиком не только txt-файлов, но и файлов типа asm (исходные файлы программ на ассемблере).

Физически пакет МАСМ разворачивается в папку MASM32 корневой папки указанного пользователем диска, традиционно это D:\ MASM32. Следует сказать, что как установленное приложение МАСМ в реестре не регистрируется. То есть пакет работоспособен сразу после установки всех его файлов.

Рисунок 4.1 –Корневая папка пакета МАСМ

Папки имеют назначение: bin – основные исполняемые файлы пакета (*.bat, *.exe и *.dll); help – chm-файлы электронной помощи по основным компонентам пакета; include и lib – включаемые inc-файлы и файлы библиотек *.lib. И то, и другое обеспечивает интерфейс создаваемых ассемблерных программ с ОС Windows; macros – набор заготовок и шаблонов макросов для широкого круга практических задач.; tutorial – большое количество готовых примеров asm-программ на самые разные темы. Пригодны как для изучения программирования на МАСМ, так и в качестве заготовок для собственных разработок.

Папка m32lib заслуживает того, чтобы о ней сказать отдельно. Это папка, в которой сложены ИСХОДНЫЕ ТЕКСТЫ процедур, применяемых в пакете. Полезность этой папки при обучении ассемблеру переоценить просто невозможно. Поэтому в будущем, когда вы при разборе очередного примера встретите вызов незнакомой функции, то сразу ищите в m32lib asm-файл с аналогичным именем, открывайте его, читайте и все тайны вам откроются.