Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2012- СИСПРОГ на МАСМ.doc
Скачиваний:
21
Добавлен:
09.11.2019
Размер:
553.47 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ, МОЛОДЕЖИ И СПОРТА УКРАИНЫ

ЧЕРНИГОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ

КАФЕДРА ИНФОРМАЦИОННЫХ И КОМПЬЮТЕРНЫХ СИСТЕМ

Системное программирование на макроассемблере masm32

Методические указания к лабораторным работам

по нормативной дисциплине

«Системное программирование» (часть 1)

студентов профессионального направления 6.050102 «Компьютерная инженерия»

Обсуждено и рекомендовано

на заседании кафедры

информационных и компьютерных систем, протокол № от . .20 г.

Чернигов ЧГТУ 20

Системне програмування на макроасемблері MASM32. Методичні вказівки до лабораторних робіт с нормативної дисципліни «Системне програмування» (частина 1) студентів професійного напряму 6.050102 «Комп’ютерна інженерія»/ Укл. Нестеренко С.О. – Чернігів: ЧДТУ, 2012. - 44 с., рос. мовою

Укладач: Нестеренко Сергій Олександрович, кандидат технічних наук, доцент

Відповідальний за випуск: Казимир Володимир Вікторович, завідувач кафедри інформаційних та комп’ютерних систем, доктор технічних наук, професор

Рецензент: Акименко Андрій Миколайович, кандидат фізико-математичних наук, доцент кафедри інформаційних та комп’ютерних систем Чернігівського державного технологічного університету

Вступление

Программирование на уровне машинных команд (низкоуровневое) является незаменимым для многих направлений информационных технологий: создание эффективных прикладных программ и драйверов, реверсный инджиниринг, криптографии, защиты информации и многих, многих других. Причина проста – если вы хотите узнать, что в действительности делает программа – загляните в ее машинный код.

Программными абстракциями машинного кода являются ассемблеры – особые языки программирования, в которых один оператор соответствует одной команде процессора. Ассемблеров существует множество хотя бы потому, что существует множество процессоров с разными наборами исполняемых ими машинных команд. Более того, для одного и того же процессора (к примеру, с архитектурой IA-32/x86) создано несколько ассемблеров с различающимся синтаксисом: tasm, masm, nasm, fasm… Они различаются синтаксисом, эффективностью поддержки разработчиков и функциональной проработанностью. Для разработчиков наибольшее значение имеют, конечно же, функциональность и эффективная поддержка. В этом смысле среди всех известных ассемблеров заметно выделяется Microsoft Macro Assembler, который известен под аббревиатурой MASM32 (32 означает, что поддерживается разработка 32-разрядных приложений). (В дальнейшем изложении мы будем использовать также аббревиатуру «МАСМ», которую следует понимать как «32-разрядный макроассемблер Microsoft MASM32»). МАСМ постоянно поддерживается и развивается корпорацией Microsoft и распространяется ею бесплатно, что, разумеется, способствует усилению его популярности. Именно поэтому МАСМ выбран кафедрой как целевой язык низкоуровневого программирования для изучения в курсе «Системное программирование».

Лабораторный практикум по системному программированию построен по принципу сочетания обязательных работ и работ, выполняемых по желанию студента. В данных методических указаниях приводятся описания только шести обязательных лабораторных работ, выполнение и защита которых может без чрезмерных трудозатрат принести студенту честно заработанную положительную оценку в диапазоне 60-65 баллов ЕКТС. Для получения более высоких оценок по курсу студент должен самостоятельно выполнить и защитить дополнительные работы, содержание и объем которых доводится до студентов в начале семестра изучения настоящей дисциплины. По этим дополнительным работам имеются отдельные методические указания, доступ к которым поможет получить преподаватель, ведущий лабораторные занятия.