- •Системное программирование на макроассемблере 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
- •Рекомендованная литература
2.3Выполнение работы
Открыть папку \МАСМ. Просмотреть список содержащихся в них файлов по типам, сравнить с описанными в методичке. Найти файлы, о которых в методичке ничего не сказано. Сформулировать для отчета обоснованные предположения, почему составитель методички обошел их молчанием.
Просмотреть папку bin. Запустить файл ml.exe /?. Определить функциональное назначение файла.
Запустить файл link /?. Определить функциональное назначение программы.
Определить файлы, относящиеся к программе rc.exe. Найдите способ по ним определить ее функциональное назначение.Письменно зафиксировать результат для отчета.
Просмотреть папку help. Запустите по очереди несколько файлов. Найдите, какой из этих файлов содержит помощь по основам макроассемблера МАСМ? Запишите в отчет.
Просмотрите папку \МАСМ\tutorial\console\demo1. Откройте редактором QE находящийся там файл hello.asm обязательно пересохраните его в свою личную рабочую папку! В QE выполните команду Project > Console Assemble and Link. Для отчета опишите, что произошло. Выполните команду Project > Run program. Для отчета опишите, что произошло. Откройте консоль кнопкой Cmd Prompt (третья справа). Какая папка открылась в консоли? Введите в командной строке «hello», Enter. Что произошло?
В QE создайте файл hellowin.asm такого содержания:
.386
.model flat, stdcall
option casemap: none ; различать заглавные и строчные
include \ MASM32\include\windows.inc
include \ MASM32\include\user32.inc
;ради MessageBoxA PROTO :DWORD,:DWORD,:DWORD,:DWORD
includelib \ MASM32\lib\user32.lib
.data
szMessage byte "Hello, world", 0
szCaption byte "Заголовок окошка", 0
.code
start:
invoke MessageBoxA, NULL, offset szMessage, offset szCaption, MB_OK
ret
end start
Сохраните его в свою рабочую папку. Создайте исполняемый файл командой Project > Build all. Опишите, что произошло. Выполните команду Project > Run program. Опишите, что произошло. Сделайте скриншот только появившегося окошка для отчета.
2.4Состав отчета по работе
Название и номер работы, фамилия и группа студента.
Цель работы.
Протокол выполнения работы с текстами ответов на все вопросы в заданиях пункта «Выполнение работы».
Ответы на контрольные вопросы, включая эссе по п. д).
Личная подпись автора отчета.
2.5Контрольные вопросы
Какова функция программы ML.EXE? Какой версией вы пользуетесь?
Какова функция программы LINK.EXE? Какой версией вы пользуетесь?
Сможете ли вы ответить, в чем, по-вашему, разница в подготовке консольных приложений и оконных? Найдете ли вы ответ по материалам лабораторных работ 1 и 2?
Как можно ли подготовить и выполнить оконное приложение, используя только консоль (не используя QE)?
Открыть http://bitfry.narod.ru/07.htm, внимательно прочесть и написать эссе объемом от 700 до 1000 (можно больше) знаков на тему «Что нового для себя я вынес из этого материала?»
3Высокоуровневый интерфейс языка масм
3.1Цель работы
Изучить основы макроязыка интерфейса макроассемблера, источники справочной информации и примеров. Экспериментально проверить, как на уровне мнемонических машинных команд компилятор представляет высокоуровневый оператор вложенной проверки условия.