- •Системное программирование на макроассемблере 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
 - •Рекомендованная литература
 
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ, МОЛОДЕЖИ И СПОРТА УКРАИНЫ
ЧЕРНИГОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ
КАФЕДРА ИНФОРМАЦИОННЫХ И КОМПЬЮТЕРНЫХ СИСТЕМ
Системное программирование на макроассемблере masm32
Методические указания к лабораторным работам
по нормативной дисциплине
«Системное программирование» (часть 1)
студентов профессионального направления 6.050102 «Компьютерная инженерия»
Обсуждено и рекомендовано
на заседании кафедры
информационных и компьютерных систем, протокол № от . .20 г.
Чернигов ЧГТУ 20
	Системне програмування на макроасемблері
	MASM32. Методичні вказівки до лабораторних
	робіт с нормативної дисципліни «Системне
	програмування» (частина 1) студентів
	професійного напряму 6.050102 «Комп’ютерна
	інженерія»/ Укл. Нестеренко С.О. –
	Чернігів: ЧДТУ, 2012. - 
Укладач: Нестеренко Сергій Олександрович, кандидат технічних наук, доцент
Відповідальний за випуск: Казимир Володимир Вікторович, завідувач кафедри інформаційних та комп’ютерних систем, доктор технічних наук, професор
Рецензент: Акименко Андрій Миколайович, кандидат фізико-математичних наук, доцент кафедри інформаційних та комп’ютерних систем Чернігівського державного технологічного університету
Вступление
Программирование на уровне машинных команд (низкоуровневое) является незаменимым для многих направлений информационных технологий: создание эффективных прикладных программ и драйверов, реверсный инджиниринг, криптографии, защиты информации и многих, многих других. Причина проста – если вы хотите узнать, что в действительности делает программа – загляните в ее машинный код.
Программными абстракциями машинного кода являются ассемблеры – особые языки программирования, в которых один оператор соответствует одной команде процессора. Ассемблеров существует множество хотя бы потому, что существует множество процессоров с разными наборами исполняемых ими машинных команд. Более того, для одного и того же процессора (к примеру, с архитектурой IA-32/x86) создано несколько ассемблеров с различающимся синтаксисом: tasm, masm, nasm, fasm… Они различаются синтаксисом, эффективностью поддержки разработчиков и функциональной проработанностью. Для разработчиков наибольшее значение имеют, конечно же, функциональность и эффективная поддержка. В этом смысле среди всех известных ассемблеров заметно выделяется Microsoft Macro Assembler, который известен под аббревиатурой MASM32 (32 означает, что поддерживается разработка 32-разрядных приложений). (В дальнейшем изложении мы будем использовать также аббревиатуру «МАСМ», которую следует понимать как «32-разрядный макроассемблер Microsoft MASM32»). МАСМ постоянно поддерживается и развивается корпорацией Microsoft и распространяется ею бесплатно, что, разумеется, способствует усилению его популярности. Именно поэтому МАСМ выбран кафедрой как целевой язык низкоуровневого программирования для изучения в курсе «Системное программирование».
Лабораторный практикум по системному программированию построен по принципу сочетания обязательных работ и работ, выполняемых по желанию студента. В данных методических указаниях приводятся описания только шести обязательных лабораторных работ, выполнение и защита которых может без чрезмерных трудозатрат принести студенту честно заработанную положительную оценку в диапазоне 60-65 баллов ЕКТС. Для получения более высоких оценок по курсу студент должен самостоятельно выполнить и защитить дополнительные работы, содержание и объем которых доводится до студентов в начале семестра изучения настоящей дисциплины. По этим дополнительным работам имеются отдельные методические указания, доступ к которым поможет получить преподаватель, ведущий лабораторные занятия.
