Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Основные приемы программирования на ассемблере MASM32

Методические указания к выполнению лабораторных работ по дисциплине «Машинно-зависимые языки и основы компиляции»
Покупка
Новинка
Артикул: 842144.01.99
Доступ онлайн
800 ₽
В корзину
Приведено описание основных возможностей среды RadAsm и отладчика OllyDbg. Рассмотрены форматы представления данных и способы их адресации. Представлены примеры простейших программ, демонстрирующие особенности программирования вычислений на ассемблере. Рассмотрены приемы программирования ветвлений, итерационных и счетных циклов с использованием основных команд передачи управления. Описаны способы адресации, используемые при моделировании одно-и двумерных массивов (матриц). Приведены конвенции о связи разноязыковых модулей. Все перечисленные приемы проиллюстрированы примерами программ, аналогичных разрабатываемым в процессе лабораторных работ. Для студентов 2-го курса МГТУ им. Н.Э. Баумана, обучающихся по программе бакалавриата направлений подготовки «Информатика и вычислительная техника» и «Прикладная информатика».
Иванова, Г. С. Основные приемы программирования на ассемблере MASM32 : методические указания к выполнению лабораторных работ по дисциплине «Машинно-зависимые языки и основы компиляции» / Г. С. Иванова, Т. Н. Ничушкина. - Москва : Издательство МГТУ им. Баумана, 2016. - 59 с. - ISBN 978-5-7038-4455-7. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2169321 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Московский государственный технический университет  
имени Н. Э. Баумана 
 
 
 
 
 
 
Г. С. Иванова, Т. Н. Ничушкина 
 
 
 
Основные приемы программирования  
на ассемблере MASM32 
 
 
Методические указания к выполнению  
лабораторных работ по дисциплине  
«Машинно-зависимые языки и основы компиляции» 
 
 
 
 
 
 
 
 
 
 
 
 
1 


 
И21 
 
УДК 681.3.06 
ББК 32.973.26-018.1 
И21 
 
Издание доступно в электронном виде на портале ebooks.bmstu.ru  
по адресу: http://ebooks.bmstu.ru/catalog/255/book1459.html 
 
Факультет «Информатика и системы управления» 
Кафедра «Компьютерные системы и сети» 
 
Рекомендовано Редакционно-издательским советом  
МГТУ им. Н.Э. Баумана в качестве методических указаний 
 
Рецензент канд. техн. наук, доцент Н. В. Новик 
 
 
Иванова, Г. С. 
Основные приемы программирования на ассемблере MASM32 : 
методические указания к выполнению лабораторных работ по  
дисциплине «Машинно-зависимые языки и основы компиляции» / Г. С. Иванова, Т. Н. Ничушкина. — Москва : Издательство 
МГТУ им. Н. Э. Баумана, 2016. — 56, [4] с. : ил. 
ISBN 978-5-7038-4455-7 
Приведено описание основных возможностей среды RadAsm и отладчика OllyDbg. Рассмотрены форматы представления данных и способы их 
адресации. Представлены примеры простейших программ, демонстрирующие особенности программирования вычислений на ассемблере. 
Рассмотрены приемы программирования ветвлений, итерационных и 
счетных циклов с использованием основных команд передачи управления. 
Описаны способы адресации, используемые при моделировании одно-  
и двумерных массивов (матриц). Приведены конвенции о связи разноязыковых модулей. Все перечисленные приемы проиллюстрированы примерами 
программ, аналогичных разрабатываемым в процессе лабораторных работ. 
Для студентов 2-го курса МГТУ им. Н.Э. Баумана, обучающихся по 
программе бакалавриата направлений подготовки «Информатика и вычислительная техника» и «Прикладная информатика». 
 
УДК 681.3.06 
ББК 32.973.26-018.1 
 
© МГТУ им. Н. Э. Баумана, 2016 
© Оформление. Издательство 
ISBN 978-5-7038-4455-7  
 
   МГТУ им. Н. Э. Баумана, 2016 
 
 
2 


 
Предисловие 
Язык ассемблера, или ассемблер (англ. assembly language), — 
язык низкого уровня с командами, обычно соответствующими командам процессора (так называемым машинным командам). Это 
соответствие позволяет отнести язык к группе машиннозависимых, которая включает также машинные языки.  
В отличие от машинных языков языки ассемблера используют 
мнемонические (буквенные) обозначения команд, а также символическую адресацию для команд и данных. Это существенно облегчает процесс написания программ, непосредственно преобразуемых в машинные коды. 
Язык ассемблера использует также макрокоманды, которым 
при переводе в машинный язык соответствует группа машинных 
команд, что сокращает размер программы, позволяя не расписывать последовательности машинных команд, реализующих часто 
встречающиеся действия. 
Цель лабораторных работ по дисциплине «Машинно-зависи- 
мые языки и основы компиляции» — приобретение практических 
навыков создания программ на языке ассемблера, а также ассемблерных «связок» для программ на языках высокого уровня. 
Для студентов, обучающихся по программе бакалавриата 
направления подготовки «Информатика и вычислительная техника» (профиль «Вычислительные машины, комплексы, системы и сети»), знание основ программирования на машинных 
языках, языках ассемблера и умение работать с шестнадцатеричными дамбами памяти являются необходимыми, поскольку 
на этом базируется проектирование микропроцессорных систем. 
Кроме того, указанные знания и умения востребованы при создании большинства сложных программных систем, поскольку 
обеспечивают глубокое понимание процессов, происходящих в 
системах при выполнении программ. 
Лабораторные работы № 1, 2 знакомят студентов со средой и языком, работы № 3−5 ориентированы на самостоятельное выполнение. 
3 


В результате выполнения лабораторных работ студент должен 
знать: 
• форматы представления целочисленных данных в оперативной памяти; 
• директивы описания данных ассемблера MASM32; 
• основные форматы машинных команд ассемблера MASM32; 
• команды целочисленной арифметики и особенности их выполнения; 
• процедуры организации ввода-вывода данных на языке ассемблера MASM32; 
• команды условной и безусловной передачи управления; 
• приемы адресации последовательной памяти для моделирования обработки массивов и матриц; 
• конвенции о связях разноязыковых модулей Win32; 
• форматы представления в оперативной памяти данных программ на языках Delphi Pascal и C++; 
• особенности компоновки подпрограмм на ассемблере с программами на языках Delphi Pascal и C++; 
уметь: 
• разрабатывать программы организации целочисленных вычислений на языке ассемблера MASM32; 
• программировать ветвления, а также итерационные и счетные 
циклы на языке ассемблера MASM32; 
• моделировать одномерные массивы и матрицы средствами 
адресации последовательной памяти, имеющимися в машинных 
командах ассемблера MASM32; 
• разрабатывать программные модули на разных языках программирования и связывать эти модули между собой; 
получить навыки: 
• использования среды RadASM и отладчика OllуDbg для разработки и отладки программ на языке ассемблера MASM32; 
• разработки небольших (до 60 команд) программ на языке ассемблера MASM32; 
• создания ассемблерных программ, написанных на языках 
Delphi Pascal и C++. 
 
4 


 
Лабораторная работа № 1  
Изучение среды и отладчика ассемблера 
Цель работы — изучение процессов создания, запуска и отладки программ на ассемблере в среде программирования 
RadASM с использованием 32-разрядного отладчика OllуDbg.  
Объем работы: 2 ч. 
Введение 
Специализированный пакет программирования Masm32 на  
32-разрядном языке ассемблера IA-32 является продуктом фирмы 
Microsoft и приспособлен для создания Windows-приложений на 
ассемблере. Помимо транслятора, компоновщика и необходимых 
библиотек пакет Masm32 включает сравнительно простой текстовый редактор и некоторые инструменты, предназначенные для 
облегчения программирования на ассемблере. Однако базовый 
набор инструментов не содержит 32-разрядного отладчика и 
предполагает работу в командном режиме, что не очень удобно. 
В лабораторных работах для создания программ на языке ассемблера будет использоваться специализированная интегрированная среда программирования на ассемблерах RadASM, которая 
помимо других ассемблеров позволяет программировать на языке 
ассемблера Masm32. Точнее, будет использоваться специально 
настроенный экземпляр среды —  
«сборка» RadASM + OllуDbg,  
где OllуDbg — 32-разрядный отладчик, отображающий в шестнадцатеричной системе счисления содержимое всех сегментов программы (сегментов кода, данных и стека) и позволяющий выполнять трассировку программы, включать в нее точки останова,  
а также просматривать содержимое памяти в процессе пошагового 
выполнения программы. Наиболее важные настройки приведены  
в приложении. 
5 


1. Теоретическая часть 
1.1. Начало работы со средой 
Программная среда активизируется запуском программы 
RadASM.exe 
После вызова программы на экране появляется окно среды 
RadASM, в котором обычно высвечивается последняя программа, 
отлаживаемая в среде во время предыдущего сеанса работы (рис. 1).  
 
 
 
Рис. 1. Окно интегрированной среды RadASM 
 
Помимо стандартных компонентов окно среды содержит меню, 
линейку инструментов, строку состояния, окно программы и два 
служебных окна: окно навигации Project и окно свойств Properties. Работа со средой осуществляется с помощью команд меню 
или соответствующих им комбинаций «горячих» клавиш. 
Для создания нового проекта необходимо выбрать пункт меню 
Файл/Новый проект, после чего на экране появится первая область окна Мастер создания проекта (рис. 2).  
В этой области необходимо выбрать тип проекта (в данном 
случае Console App — консольное приложение), а также ввести 
его имя (например, Lab01), описание (например, «Лабораторная 
работа № 1») и путь к создаваемой средой новой папке с именем 
проекта.  
6 


Доступ онлайн
800 ₽
В корзину