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

Лабораторная работа № 4

Технология создания ассемблерных программ.

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

- освоить технику создания программ в SDK MASM32;

- изучить использование шаблонов ассемблерных программ;

- экспериментально изучить работу макрогенератора;

- изучить технику создания и применения макросов.

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

  1. Краткие сведения из теории На что опирается программирование на ассемблере

Программировать на ассемблере – значит писать программы практически на уровне машинных команд. Ассемблеры – это такие языки программирования, в которых каждой машинной команде процессора сопоставляется один оператор. (Примечание. В ассемблеры также включаются всякие дополнительные средства для облегчения программирования, но главная их особенность именно эта – одна процессорная команда может изображаться одним оператором). Для превращения исходного текста в исполняемый exe-модуль применяются компилятор (переводчик текста в машинный код) и компоновщик (он связывает вместе отдельные функциональные секции машинного кода и создает ехе-модуль). Язык ассемблерного программирования, включающий возможность описания и использования макроподстановок (макросов), традиционно называют «макроассемблер». Среди макроассемблеров самым проработанным и удобным заслуженно считается Microsoft Macroassembler, сокращенно – MASM (МАСМ). Его 32-разрядная разновидность называется MASM32.

Корпорация Microsoft включает в пакеты Visual C++ и Visual Studio компилятор макроассемблера ML.EXE и компоновщик LINK.EXE, которые являются необходимыми компонентами среды разработки программных приложений (IDE). Эти качественные программные компоненты можно использовать и сами по себе, вне упомянутых сред программирования. Корпорация Microsoft не рассматривает их как отдельные товарные продукты на рынке программного обеспечения и не препятствует их свободному бесплатному использованию кем угодно.

Многие энтузиасты создают собственные пакеты для программирования на макроассемблере, базирующиеся на использовании ML.EXE и LINK.EXE. Наиболее успешной следует считать деятельность группы Стива Хатчисона (Австралия), которые бесплатно распространяют и поддерживают пакет МАСМ, доступный в Сети по адресу http://www.МАСМ.com/masmdl.htm для скачивания как минимум с семи зеркальных серверов.

Пакет МАСМ содержит множество ресурсов, которые дополняют ML.EXE и LINK.EXE до работоспособного набора поддержки разработчиков ассемблерных программ (Software Developer’s Kit, SDK).

И, наконец, существует множество фирм, инициативных групп и отдельных программистов, которые создают и даже нередко сопровождают всякие дополнительные программные средства для программирования на всевозможных ассемблерах – и МАСМ, и nasm и fasm и всяких иных. В конце концов, фирма Intel открыто публикует сведения об архитектуре и системе команд своих процессоров, и на этой базе даже одному человеку под силу написать «свой ассемблер», примеров чему мы находим в Интернете множество.

Говоря здесь о «дополнительных программных средствах», мы имеем в виду (по версии сайта http://www.wasm.ru/) такой (неполный) список классов программ:

  • образовательные программы;

  • SDK и IDE;

  • редакторы ресурсов;

  • дизассемблеры;

  • отладчики;

  • модификаторы;

  • инсталляторы;

  • распаковщики;

  • упаковщики;

  • средства криптографии;

  • средства работы с реестром;

  • редакторы байт-кода…

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