- •Федеральное государственное бюджетное
- •1 Используемое оборудование и программное обеспечение 5
- •2 Общая подготовка к выполнению лабораторных работ 5
- •3 Общий ход выполнения и защиты лабораторных работ 6
- •4 Основные теоретические положения по программированию на языке ассемблера 7
- •5 Процесс ассемблирования и выполнения программы 36
- •Введение
- •1 Используемое оборудование и программное обеспечение
- •2 Общая подготовка к выполнению лабораторных работ
- •3 Общий ход выполнения и защиты лабораторных работ
- •4 Основные теоретические положения по программированию на языке ассемблера
- •4.1 Организация памяти для хранения программ
- •4.2 Режимы адресации данных микропроцессора Intel 8086
- •4.3 Режимы адресации переходов микропроцессора Intel 8086
- •4.4 Слово состояния микропроцессора Intel 8086
- •4.5 Список сокращений и условных обозначений
- •4.6 Общий формат ассемблерной команды
- •4.7 Определение данных
- •4.8 Регистры процессора Pentium
- •4.9 Команды языка ассемблера
- •4.9.1 Команды передачи данных
- •4.9.2 Команды двоичных сложений и вычитаний
- •4.9.3 Однооперандные команды двоичной арифметики и команды сравнения
- •4.9.4 Команды умножения и деления двоичных чисел
- •4.9.5 Логические команды
- •4.9.6 Команды сдвигов и циклических сдвигов
- •4.9.7 Команды передачи управления
- •1) Безусловные переходы.
- •1.1) Команда безусловного перехода
- •1.2) Обращение к процедурам
- •2) Условные переходы
- •4.9.8 Команды циклов
- •4.9.9 Стековые команды
- •1) Организация стека
- •2) Использование стека для передачи параметров
- •5 Процесс ассемблирования и выполнения программы
- •5.1 Получение исполняемого модуля
- •5.2 Работа с отладчиком программ turbo debugger
- •1 2 3 5 4
- •6 Программа на языке ассемблера
- •6.1 Структура программы
- •6.2 Примеры программ
- •7 Лабораторная работа № 1. Линейное исполнение программ. Арифметические и поразрядные логические операции над байтами
- •7.1 Цель работы
- •7.2 Контрольные вопросы
- •7.3 Задание на лабораторную работу
- •8 Лабораторная работа № 2. Адресация межсегментных
- •9 Лабораторная работа № 3. Команды условного и безусловного переходов. Организация ветвлений и циклов в программе
- •9.1 Цель работы
- •9.2 Контрольные вопросы
- •9.3 Задание на лабораторную работу
- •10 Лабораторная работа № 4. Обработка массивов. Числа Фибоначчи.
- •10.1 Цель работы
- •10.2 Контрольные вопросы
- •10.3 Задание на лабораторную работу
- •11 Лабораторная работа № 5. Использование подпрограмм.
- •12 Лабораторная работа № 6. Обработка структур. Ведение базы данных о пациентах
- •12.1 Цель работы
- •12.2 Контрольные вопросы
- •11.3 Задание на лабораторную работу
- •13 Лабораторная работа № 7. Использование стека. Проверка баланса расстановки скобок в строке
- •13.1 Цель работы
- •13.2 Контрольные вопросы
- •13.3 Задание на лабораторную работу
- •14 Лабораторная работа № 8. Использование стека и рекурсивных процедур. Организация передачи параметров через стек в процедуру вычисления факториала числа
- •14.1 Цель работы
- •14.2 Контрольные вопросы
- •14.3 Задание на лабораторную работу
- •15 Список рекомендуемой литературы
- •Приложение а
Федеральное государственное бюджетное
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ- УЧЕБНО- НАУЧНО-
ПРОИЗВОДСТВЕННЫЙ КОМПЛЕКС»
УЧЕБНО- НАУЧНО- ИССЛЕДОВАТЕЛЬСКИЙ ИНСТИТУТ
ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
Кафедра: «Информационные системы»
О.В. Конюхова
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ АССЕМБЛЕРА
Методические указания
по выполнению лабораторных работ
Дисциплины - «Вычислительные системы, сети и
телекоммуникации»
«Архитектура вычислительных систем»
«ЭВМ и периферийные устройства»
Направления - 230700.62 «Прикладная информатика»
230400.62 «Информационные системы и
технологии»
231000.62 «Программная инженерия»
230100.62 «Информатика и вычислительная
техника»
Допущено ФГБОУ ВПО «Госуниверситет - УНПК»
для использования в учебном процессе в качестве
методических указаний для высшего
профессионального образования
ОРЕЛ 2012
Автор: канд. техн. наук, доцент кафедры
«Информационные системы» О.В. Конюхова
Рецензент: канд. техн. наук, доцент кафедры
«Информационные системы» А.П. Гордиенко
Настоящие методические указания содержат рекомендации по выполнению лабораторных работ, посвященных низкоуровневому программированию на языке ассемблера, порядок выполнения и защиты лабораторных работ, задания к лабораторным работам. Приведены теоретические сведения по программированию на языке ассемблера, необходимые для выполнения лабораторных работ, а также список рекомендуемой литературы.
Данные методические указания предназначены для студентов, обучающихся по направлению 230700.62 «Прикладная информатика», изучающих дисциплину «Вычислительные системы, сети и телекоммуникации»; по направлениям 230400.62 «Информационные системы и технологии» и 231000.62 «Программная инженерия», изучающих дисциплину «Архитектура вычислительных систем», по направлению 230100.62 «Информатика и вычислительная техника», изучающих дисциплину «ЭВМ и периферийные устройства». Форма обучения – очная.
Редактор Митин А.А.
Технический редактор Амелина О.В.
Федеральное государственное бюджетное образовательное
учреждение высшего профессионального образования
«Государственный университет – учебно- научно-
производственный комплекс»
Лицензия ИД 00670 от 05.01.2000 г.
Подписано к печати Формат 6090 1\16
Печать офсетная Усл. печ. л. . Тираж экз.
Заказ №
Отпечатано с готового оригинал-макета
© ФГБОУ ВПО «Госуниверситет- УНПК», 2012
Содержание
Введение 5
1 Используемое оборудование и программное обеспечение 5
2 Общая подготовка к выполнению лабораторных работ 5
3 Общий ход выполнения и защиты лабораторных работ 6
4 Основные теоретические положения по программированию на языке ассемблера 7
4.1 Организация памяти для хранения программ 7
4.2 Режимы адресации данных микропроцессора Intel 8086 8
4.3 Режимы адресации переходов микропроцессора Intel 8086 10
4.4 Слово состояния микропроцессора Intel 8086 12
4.5 Список сокращений и условных обозначений 13
4.6 Общий формат ассемблерной команды 14
4.7 Определение данных 14
4.8 Регистры процессора Pentium 15
4.9 Команды языка ассемблера 18
4.9.1 Команды передачи данных 19
4.9.2 Команды двоичных сложений и вычитаний 19
4.9.3 Однооперандные команды двоичной арифметики и 20
команды сравнения 20
4.9.4 Команды умножения и деления двоичных чисел 20
4.9.5 Логические команды 22
4.9.6 Команды сдвигов и циклических сдвигов 23
4.9.7 Команды передачи управления 25
4.9.8 Команды циклов 31
4.9.9 Стековые команды 31