
- •Системное программирование на макроассемблере masm32
- •«Системное программирование» (часть 1)
- •Вступление
- •1Организация среды исполнения для масм
- •1.1Цель работы
- •1.2 Теоретические сведения
- •If errorlevel 0 команда2
- •If errorlevel 0 goto метка
- •1.3Выполнение работы
- •1.4Состав отчета по работе
- •1.5Контрольные вопросы
- •2.2.2Состав пакета масм
- •2.2.3Центр масм – редактор Quick Editor
- •2.3Выполнение работы
- •2.4Состав отчета по работе
- •2.5Контрольные вопросы
- •3Высокоуровневый интерфейс языка масм
- •3.1Цель работы
- •3.2 Теоретические сведения
- •3.2.1Процедуры и макросы в ассемблере
- •3.2.2Синтаксис высокого уровня масм
- •3.2.3Макрос invoke
- •3.3Выполнение работы
- •4.2.2Потоки вывода и ввода
- •4.2.3Вывод и ввод в консольных приложениях
- •4.3Выполнение работы
- •4.4Состав отчета по работе
- •4.5Контрольные вопросы
- •5Ввод и вывод в ассемблерных приложениях с графическим интерфейсом
- •5.1Цель работы
- •5.2Теоретические сведения
- •5.3Выполнение работы
- •6.3.1Фрейм кода (области 1-5)
- •6.3.2Фрейм дампа памяти (области 9,10 и 11)
- •6.3.3Фрейм регистров процессора (области 6, 7 и 8)
- •6.3.4Фрейм стека (области 12, 13 и 14)
- •6.4Выполнение работы
- •6.5Состав отчета по работе
- •6.6Контрольные вопросы
- •Приложение а Префиксы «венгерской» нотации типов данных WinApi
- •Рекомендованная литература
1.3Выполнение работы
Найдите на диске место, где установлен пакет МАСМ. Выпишите полные пути для папок MASM32\bin, MASM32\lib и MASM32\include.
Найдите, как описано выше, место изменения переменной path. Проверьте, изменена ли переменная path надлежащим образом. Если нет, допишите пути из п.1 в ее конец и сохраните результат.
Откройте папку MASM32\bin. Скопируйте в свою рабочую папку пакетные файлы assmbl.bat, lnk.bat, lnkc.bat, build.bat и buildc.bat.
Добавьте к каждому из этих файлов развернутые русские комментарии, поясняющие, что делает каждая строка пакетника и каков ее смысл. Отредактированные таким образом файлы распечатать для отчета.
Письменно ответьте на контрольные вопросы.
Оформите отчет по работе как указано ниже.
1.4Состав отчета по работе
Фамилия, инициалы и группа студента.
Заголовок работы, цель работы.
Откомментированные пакетные файлы из п.1.3, пп. г).
Письменные ответы на контрольные вопросы. Писать сначала сам вопрос, потом ответ.
Личная подпись автора отчета.
1.5Контрольные вопросы
Что такое консоль? Как производится работа с ней?
Какую роль имеет переменная path для нормальной работы программ? Как ее задать и как ее изменить?
Что означают команды @, > и >> в пакетных файлах?
Какие условия можно проверять в пакетных файлах? Какие действия можно предпринимать по результатам проверок?
Найдите на http://ru.wikipedia.org/wiki/Windows_PowerShell статью, прочтите ее и неформально опишите (1000 знаков) свое мнение о прочитанном.
2СОСТАВ И ОРГАНИЗАЦИЯ ПАКЕТА МАСМ
2.1Цель работы
Ознакомиться с программами и программными ресурсами, которые входят в состав макроассемблера МАСМ. Изучить назначение и основные функциональные возможности программ пакета МАСМ. Выполнить программу «Hello, world».
2.2Теоретические сведения
2.2.1Кто что создал и кто за что отвечает
Корпорация Microsoft включает в пакеты Visual C++ и Visual Studio компилятор макроассемблера ML.EXE и компоновщик LINK.EXE, которые являются необходимыми компонентами среды разработки программных приложений (IDE). Эти программные компоненты хорошо поддерживаются и постоянно обновляются. Microsoft бесплатно распространяет ML.EXE и LINK.EXE и как отдельные продукты.
Многие энтузиасты создают пакеты для программирования на макроассемблере, базирующиеся на использовании ML.EXE и LINK.EXE. Наиболее успешной следует считать деятельность группы Стива Хатчисона (Австралия), которые бесплатно распространяют и поддерживают пакет МАСМ, доступный в Сети по адресу http://www.МАСМ.com/masmdl.htm для скачивания как минимум с семи зеркальных серверов.
Пакет МАСМ содержит множество ресурсов, которые дополняют ML.EXE и LINK.EXE практически до работоспособной среды разработки ассемблерных программ, хотя полнофункциональной IDE-средой он не является. Более подробно о составе МАСМ и назначении его компонент речь пойдет ниже.
И, наконец, существует множество фирм, инициативных групп и отдельных программистов, которые создают и даже нередко сопровождают всякие дополнительные программные средства для программирования на всевозможных ассемблерах – и МАСМ, и nasm и fasm и всяких иных. В конце концов, фирма Intel открыто публикует сведения об архитектуре и системе команд своих процессоров, и на этой базе даже одному человеку под силу написать «свой ассемблер», примеров чему мы находим в Интернете множество.
Говоря здесь о «дополнительных программных средствах», мы имеем в виду (по версии сайта http://www.wasm.ru/) такой (неполный) список классов программ:
образовательные программы;
интегрированные среды разработки;
редакторы ресурсов;
дизассемблеры;
отладчики;
модификаторы;
инсталляторы;
распаковщики;
упаковщики;
средства криптографии;
средства работы с реестром;
редакторы байт-кода.
Столь обширный перечень одних только классов программ говорит о том, что при разработке системных программ на ассемблере программисты встречаются с огромным множеством особых, нестандартных, специфических ситуаций, для преодоления которых и создаются эти инструменты. С некоторыми из них мы познакомимся в курсе лабораторных работ по СП.