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

Вы прочитали тексты исходников textio.asm и minimum.asm и наверняка отметили значительное сходство их начальных частей, в которых упоминаются файлы с расширениями inc и lib.

Для облегчения создания таких заголовков в папке \include имеется файл masm32rt.inc, который содержит универсальный заголовок исходного текста MASM-программы. Наличие такого файла сильно упрощает начальный этап освоения ассемблера. В нем прописаны все директивы подключения текстовых inc- и библиотечных lib-файлов, что обеспечивает создаваемой программе полную возможность использовать наработанный в МАСМ инструментарий в виде макросов и процедур. Особенно хорошо то, что пользователю не нужно заботиться о правильной последовательности подключения упоминаемых ресурсов, там это уже сделано. Применение masm32rt.inc обеспечивает создание надёжных 32-разрядных консольных и Windows-приложений.

С учетом сказанного простейший шаблон ассемблерной программы выглядит так.

include \masm32\include\masm32rt.inc

;<Здесь можно описывать макросы.>

.data

;<Здесь можно описывать статические переменные. >

.code

start:

;< Здесь можно вводить команды программиста. >

; ------ завершение программы--------------

invoke ExitProcess,0 ; выход в Windows

end start

Другими средствами облегчения разработки ассемблерных программ являются два пакетных файла, которые находятся в \bin – это build.bat (для создания windows-приложений) и buildc.bat (для разработки консольных приложений). Чтобы вызовы и всех подключаемых файлов, и этих пакетов происходили без проблем, нужно «на постоянно» дополнить системную переменную path допиской d:\masm32;d:\masm32\bin;d:\masm32\lib;d:\masm32\include. Как это сделать, смотрите методичку по практическим занятиям, п. 1.3.2.

Открыть в редакторе пакет build.bat, внимательно просмотреть его, скопировать в отчет. Повторить это для пакета buildc.bat.

Проиллюстрируем сказанное созданием простейшей программы “Hello, world!”. Делаем исходник hello.asm (+ скопировать в отчет):

include \masm32\include\masm32rt.inc

;<Здесь можно описывать макросы.>

.data

;<Здесь можно описывать статические переменные. >

.code

start:

;< Здесь можно вводить команды программиста. >

print “Hello, world!” ; например, такую.

invoke ExitProcess,0 ; выход в Windows

end start

  1. buildc hw Смотреть на выводы в процессе компиляции и компоновки. Описать наблюдаемое.

  2. hw Виден результат выполнения.

    1. Состав отчета по работе

  1. Номер и название работы, фамилия и группа студента.

  2. Цель работы.

  3. Протокол выполнения работы с текстами ответов на все вопросы в заданиях пункта «Выполнение работы».

  4. Выводы по работе.

    1. Вопросы для самопроверки

  1. Какова функция программы ML.EXE?

  2. Какова функция программы LINK.EXE?

  3. В чем разница в подготовке консольных приложений и оконных?

  4. Что конкретно делает компоновщик во время компоновки ехе-модуля?

  1. МАКРОГЕНЕРАТОР И МАКРОСЫ

    1. Цель работы

Изучить технику создания и применения макросов. Научиться наблюдать за результатами работы макрогенератора, встроенного в ml.exe.

    1. Теоретические сведения

Здесь нет возможности рассказать всё про макросы и работу с ними – материала много, много всяких особых случаев и тонкостей. Ниже будет описано только самое главное для этой лабораторной работы. А для полной информации придётся читать учебник и интернет, ничего не поделаешь.

      1. Макроопределение и макрорасширение

Макроопределение – это описание, которое связывает некий текст с его именем. Например:

Считалка MACRO

Раз, Два, три, четыре, пять

Всем ребятам надо спать.

ENDM

Здесь «Считалка» - это имя макроопределения (короче говорят «макроса»), а всё, что находится во второй и третьей строках макроопределения называется «телом макроса». Компилятор ML.EXE имеет в своей функциональности встроенную подсистему «макрогенератор» (иногда употребляется термин «препроцессор», особенно в англоязычных источниках), которая выполняет всю работу с макросами. Эта работа выполняется перед тем, как включается транслятор, который потом переводит текст исходника в машинный числовой формат.

Самое основное, что делает макрогенератор – он при обработке исходного текста сначала выполняет макрорасширения. Макрорасширение – это ЗАМЕНАвстретившегося в исходникеименимакроса на еготело. То есть, если в исходнике во многих местах встретилась строка («макровызов»)

Считалка

то ее каждое вхождение будет стёрто, а вместо неговезде будет подставлено

Раз, Два, три, четыре, пять

Всем ребятам надо спать.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]