Программирование на языке Ассемблер
Покупка
Новинка
Издательство:
ТГАСУ
Год издания: 2018
Кол-во страниц: 63
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-93057-863-8
Артикул: 835038.01.99
В учебном пособии рассматриваются основные понятия низкоуровневого языка программирования Ассемблер. По каждой теме разбираются примеры решения задач. Для закрепления полученных навыков в пособии приведены контрольные задания. Пособие предназначено для студентов, обучающихся по направлению 09.03.03. «Прикладная информатика» всех форм обучения и изучающих дисциплины «Низкоуровневое программирование» и «Микропроцессорные технологии».
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования «Томский государственный архитектурно-строительный университет» С.П. Батуев, Н.А. Вихорь ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ АССЕМБЛЕР Учебное пособие Томск Издательство ТГАСУ 2018
УДК 004.438(075.8) ББК 32.973.21я73 Батуев, С.П. Программирование на языке Ассемблер [Текст] : учебное пособие / С.П. Батуев, Н.А. Вихорь. – Томск, 2018. – 63 с. ISBN 978-5-93057-863-8 В учебном пособии рассматриваются основные понятия низкоуровневого языка программирования Ассемблер. По каждой теме разбираются примеры решения задач. Для закрепления полученных навыков в пособии приведены контрольные задания. Пособие предназначено для студентов, обучающихся по направлению 09.03.03. «Прикладная информатика» всех форм обучения и изучающих дисциплины «Низкоуровневое программирование» и «Микропроцессорные технологии». УДК 004.438(075.8) ББК 32.973.21я73 Рецензенты: П.А. Радченко, кандидат физ.-мат. наук, заведующий кафедрой прикладной математики ТГАСУ; А.Е. Петелин, кандидат физ.-мат. наук, доцент кафедры информационного обеспечения инновационной деятельности НИ ТГУ. ISBN 978-5-93057-863-8 © Томский государственный архитектурно-строительный университет, 2018 © С.П. Батуев, Н.А. Вихорь, 2018 Б287
ОГЛАВЛЕНИЕ Введение ...................................................................................... 5 1. Структура компьютера ......................................................... 6 1.1. Строение CPU .................................................................... 6 1.2. Регистры общего назначения ........................................... 7 1.3. Сегментные регистры ........................................................ 8 1.4. Регистры специального назначения .................................. 9 2. Доступ к памяти ................................................................... 10 2.1. Команда MOV .................................................................. 12 3. Переменные........................................................................... 14 3.1. Массивы ........................................................................... 17 3.2. Получение адреса переменной ........................................ 19 3.3. Константы ........................................................................ 20 4. Прерывания .......................................................................... 23 5. Библиотека общих функций – еmu8086.inc ....................... 25 6. Арифметические и логические команды .......................... 29 7. Управление ходом программы ........................................... 34 7.1. Безусловные переходы .................................................... 34 7.2. Короткие условные переходы ......................................... 35 8. Цикл ....................................................................................... 41 8.1. Инструкция LOOP ........................................................... 41 9. Процедуры ............................................................................. 43 10. Стек ........................................................................................ 46 11. Макросы ................................................................................ 50 12. Задания для самостоятельной работы .............................. 53 Задание 1. Команда MOV и арифметические команды ................. 53 Задание 2. Команды логических операций, сдвигов, выделение битовых полей ....................................... 54 Задание 3. Ветвления. Команды передачи управления .................. 55 Задание 4. Обработка данных в цикле (без использования ветвления) .............................................. 57
Задание 5. Обработка данных в цикле (с использованием ветвлений) .............................................. 58 Задание 6. Стек ....................................................................... 59 Вопросы для самостоятельной работы и самоконтроля ....................................................................... 60 Список рекомендуемой литературы ..................................... 62
ВВЕДЕНИЕ Каждый компьютер имеет свой язык программирования – машинный язык. Он тесно связан с его аппаратной частью. Язык программирования, ориентированный на конкретный тип процессора и учитывающий его особенности, называется языком программирования низкого уровня. «Низкий уровень» означает, что операторы языка близки к машинному коду и ориентированы на конкретные команды процессора. Большинство программистов работают с языками высо кого уровня, которые значительно ближе и понятнее человеку, нежели компьютеру. Языки высокого уровня были разработаны для того, чтобы освободить программиста от учета технических особенностей конкретных компьютерных архитектур. Язык Ассемблер – это язык программирования низкого машинного уровня. С его помощью можно получить представление о том, как аппаратная часть компьютера взаимодействует с операционной системой и как прикладные программы обращаются к операционной системе. На языке Ассемблер создаются очень эффективные и компактные программы, так как разработчик получает доступ ко всем возможностям процессора.
1. СТРУКТУРА КОМПЬЮТЕРА Для того чтобы понять принципы работы программы на языке Ассемблер, сначала необходимо ознакомиться с общей структурой компьютера. Упрощенная модель компьютера представлена на рис. 1: Рис. 1. Упрощенная модель компьютера System bus – системная шина (окрашена желтым цве том) соединяет различные компоненты компьютера. CPU – центральный процессор (ЦП) – это сердце ком пьютера. Большинство вычислений происходит в CPU. RAM – оперативная память (ОЗУ). В оперативную па мять загружаются программы для выполнения. 1.1. Строение CPU Процессор Intel 8086 состоит из 16 16-разрядных регист ров, которые представлены на рис. 2.
Рис. 2. Строение центрального процессора 1.2. Регистры общего назначения Процессор 8086 имеет 8 регистров общего назначения, каждый регистр имеет имя: AX – регистр-аккумулятор (разделен на два регистра: AH и AL); BX – регистр базового адреса (разделяется на BH / BL); CX – регистр-счетчик (разделяется на CH / CL); DX – регистр данных (разделяется на DH / DL); SI – регистр – индекс источника; DI – регистр – индекс назначения; BP – указатель базы; SP – указатель стека. Несмотря на имя регистра, программист сам определяет, для каких целей использовать регистры общего назначения. Основное назначение регистра – хранение числа (переменной). Разрядность регистров составляет 16 бит.