Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2014- СП 3.0 ЛАБЫ ОБЯЗАТ.doc
Скачиваний:
99
Добавлен:
01.03.2016
Размер:
896 Кб
Скачать
        1. Режимы компоновки

Компоновщик LINK.EXE способен создавать ехе-модули, которые вызываются на исполнение как консольные программы (ключ /SUBSYSTEM: CONSOLE). Они исполняются с использованием окна программы cmd.exe, которое автоматически открывается при их запуске. Такие программы малы по размеру, исполняются быстро и потребляют очень мало ресурсов. Правда, имеют скромный символьный интерфейс.

Программы с графическим интерфейсом пользователя (GUI – Graphic User Interface) также можно создавать на макроассемблере. По сравнению с консольными программами они должны создаваться не только из исходного файла и подключаемых библиотек. Для такой программы дополнительно нужно создать т.н. «ресурсный файл» (*.rc), в котором на макроязыке описываются все графические компоненты интерфейса – кнопки, иконки, поля текстового ввода-вывода и т.п. Для создания подобных файлов обычно используются специальные приложения.

Ресурсные файлы нужно откомпилировать специальным компилятором ресурсов. Их в МАСМе целых два – rc.exe и porc.exe, оба лежат в \bin. Результатом компиляции является «ресурсный объектный файл», с расширением res.

На этапе компоновки LINK.EXE собирает ехе-модуль не только из obj- и lib-файлов, но подключает также и res-файлы(ы) (ключ /SUBSYSTEM: WINDOWS). Получившийся ехе-модуль запускается в GUI-программу.

    1. Выполнение работы

      1. Создание консольной программы

На данном этапе мы не ставим перед вами задачу самостоятельного написания какой-нибудь ассемблерной программы. Воспользуемся готовым примером. Заодно проведете первичное знакомство «как оно на МАСМе всё делается». Итак, делаем вот что.

  1. Скопируйте в d:\sample2 файл :\MASM32\examples\exampl03\textio\ textio.asm. Откройте его в Notepad++, посмотрите, что там написано, попытайтесь себе хоть как-то объяснить наблюдаемое, это очень поможет в дальнейшем. Скопируйте этот файл в отчет по работе.

  2. Откройте консоль и перейдите на d:\sample2. Рядом откройте окно Проводника с этой папкой, чтобы не обращаться каждый раз к dir для наблюдения за результатами. Все выполняемые по данному сценарию действия записывать в отчет и описывать наблюдаемые результаты.

  3. Обеспечьте вызов компилятора и компоновщика изменением строки path, т.е. выполните path=d:\masm32;d:\masm32\bin;d:\masm32\lib;d:\masm32\include;%path%

  4. Откомпилируйте исходник ml /c /coff textio.asm Что нового показал Проводник? Записать в отчет наблюдаемое.

  5. Ml /? Прочитать и внести в отчет, что означают ключи /c и /coff.

  6. Проведите компоновку ехе-модуля Link /SUBSYSTEM:CONSOLE /OPT:NOREF textio.obj

  7. Что нового появилось в папке (смотреть в Проводник)? Записать в отчет наблюдаемое.

  8. Link /? Выяснить смысл ключей /SUBSYSTEM:CONSOLE и /OPT:NOREF, записать в отчет.

  9. Выполнить textio.exe. Скриншот программы внести в отчет.

      1. Создание программы с графическим интерфейсом

Повторим предыдущий сценарий, но будем создавать теперь программу с графическим интерфейсом на основе готового примера.

  1. Скопировать в d:\sample2 файл minimum.asm из папки d:\MASM32\examples\exampl01\minimum\.

  2. Прочесть его в редакторе, скопировать в отчет.

  3. ml /c /coff /nologo minimum.asm Действие выполнить, команды вносить в отчет без дополнительных напоминаний.

  4. Что нового появилось в папке? Чем отличается выполнение этой компиляции от действия г) в п.2.3.1? Записать в отчет. Выяснить, что такое ключ /nologo и записать это в отчет.

  5. Выполнить Link /SUBSYSTEM:WINDOWs minimum.obj. Изменения в папке записать в отчет.

  6. Выполнить minimum.exe. Скриншот программы внести в отчет.