Ассемблер в примерах и задачах [Наталья Юрьевна Добровольская] (pdf) читать постранично

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

О.В. Гаркуша
Н.Ю. Добровольская

Ассемблер
в примерах и задачах

Краснодар
2022

Министерство науки и высшего образования
Российской Федерации
КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

О.В. ГАРКУША
Н.Ю. ДОБРОВОЛЬСКАЯ

АССЕМБЛЕР В ПРИМЕРАХ
И ЗАДАЧАХ
Учебное пособие

Краснодар
2022

УДК 004.431.4
ББК 32.973.2
Г 204
Рецензенты:
Доктор физико-математических наук, профессор
Е.Н. Калайдин
Кандидат физико-математических наук, доцент
С.Е. Рубцов
Гаркуша, О.В., Добровольская, Н.Ю.
Г 204
Ассемблер в примерах и задачах: учебное пособие /
О.В. Гаркуша, Н.Ю. Добровольская; Министерство науки и
высшего образования Российской Федерации, Кубанский
государственный университет. − Краснодар: Кубанский гос.
ун-т, 2022. − 134 с. − 500 экз.
ISBN 978-5-8209-2052-3
Изложены
фундаментальные
темы:
организация
современного компьютера, устройство процессоров семейства
IA-32,
синтаксис
языка
ассемблера,
макросредства,
программирование типовых управляющих структур, сложные
структуры данных, оптимизация программ. Приведены
многочисленные примеры, иллюстрирующие материал.
Адресуется студентам факультета компьютерных технологий
и
прикладной
математики,
изучающим
основы
программирования.

УДК 004.431.4
ББК 32.973.2
ISBN 978-5-8209-2052-3

© Кубанский государственный
университет, 2022
© Гаркуша О.В.,
© Добровольская Н.Ю., 2022

ВВЕДЕНИЕ

ВВЕДЕНИЕ
Изучение архитектуры современных ПК, программирование
на машинно-ориентированном языке — необходимая часть
подготовки профессиональных программистов. Знание языка
ассемблера позволяет лучше понять принципы работы ЭВМ,
операционных систем и трансляторов с языков высокого уровня,
разрабатывать высокоэффективные программы.
Masm32 – специализированный пакет для программирования
на языке ассемблера IA-32. Являясь продуктом фирмы Microsoft,
он максимально приспособлен для создания Windows-приложений
на ассемблере. Кроме транслятора, компоновщика и необходимых
библиотек пакет Masm32 включает сравнительно простой
текстовый редактор и некоторые инструменты, предназначенные
для облегчения программирования на ассемблере. Однако набор
инструментов не содержит 32-разрядного отладчика и
предполагает работу в командном режиме, что не очень удобно.
Для
создания
программ
можно
использовать
специализированную интегрированную среду RADAsm, которая
помимо других ассемблеров позволяет использовать Masm32.
Точнее, используется специально настроенная среда – «сборка»
RADAsm + OlleDBG, где OlleDBG – 32-разрядный отладчик.
В учебном пособии рассматривается последовательность
действий при разработке приложений на ассемблере в среде
RADAsm, кроме того, указываются особенности архитектуры
процессоров семейства IA-32.

3

Ассемблер в примерах и задачах

1. НАЧАЛО РАБОТЫ СО СРЕДОЙ
Программная среда инициируется запуском программы
RadASM.exe.
Для создания нового проекта необходимо выбрать пункт
меню File > New Project, после чего на экране появится первое окно
Мастера создания проекта.
В этом окне необходимо выбрать тип проекта – в нашем
случае Console App (консольное приложение), а также ввести его
имя, например, HelloWord, описание, например, «Привет мир», и
путь к создаваемой средой новой папке с именем проекта.

В следующем окне Мастера выбирается шаблон проекта
(SIOConsoleApp.tpl), специально созданный для лабораторных
работ шаблон консольного приложения.

4

ВВЕДЕНИЕ

Далее предлагается выбрать типы создаваемых файлов —
выбираем Asm (исходные файлы ассемблера), Inc (подключаемые
библиотеки) и создаваемые папки — выбираем папку Bak для
хранения предыдущих версий файлов.

По окончании создания проекта Мастер определяет
доступные для работы с проектом пункты меню запуска
приложения.
5

Ассемблер в примерах и задачах

В этом окне рекомендуем использовать настройки по
умолчанию.

Полученный шаблон консольного приложения Windows
содержит:
− директивы, определяющие набор команд и модель
памяти;
− директивы подключения библиотек;
− разделы констант, инициализированных данных с
минимально необходимыми директивами определения данных;
6

Формирование исполняемого приложения

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

1.1. ФОРМИРОВАНИЕ ИСПОЛНЯЕМОГО ПРИЛОЖЕНИЯ
Для запуска шаблона необходимо выполнить:
− трансляцию Make > Assemble;
− компоновку Make > Link;
− запуск на выполнение Make > Run.

В процессе трансляции (ассемблирования) исходная
программа на ассемблере преобразуется в двоичный эквивалент.
7

Ассемблер в примерах и задачах

Если трансляция проходит без ошибок, то в окне Output,