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

Программирование на языке Ассемблер

Покупка
Артикул: 835038.01.99
Доступ онлайн
89 ₽
В корзину
В учебном пособии рассматриваются основные понятия низкоуровневого языка программирования Ассемблер. По каждой теме разбираются примеры решения задач. Для закрепления полученных навыков в пособии приведены контрольные задания. Пособие предназначено для студентов, обучающихся по направлению 09.03.03. «Прикладная информатика» всех форм обучения и изучающих дисциплины «Низкоуровневое программирование» и «Микропроцессорные технологии».
46
Батуев, С. П. Программирование на языке Ассемблер : учебное пособие / С. П. Батуев, Н. А. Вихорь. - Томск : ТГАСУ, 2018. - 63 с. - ISBN 978-5-93057-863-8. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2157650 (дата обращения: 12.08.2026). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
  
Министерство науки и высшего образования Российской Федерации 
Федеральное государственное бюджетное образовательное учреждение  
высшего образования 
«Томский государственный архитектурно-строительный университет» 
 
 
 
 
 
 
 
С.П. Батуев, Н.А. Вихорь 
 
 
ПРОГРАММИРОВАНИЕ  
НА ЯЗЫКЕ АССЕМБЛЕР 
 
 
Учебное пособие 
 
 
 
 
 
 
 
 
 
 
 
Томск 
Издательство ТГАСУ 
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 бит. 


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