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

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

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

Министерство науки и высшего образования Российской Федерации 

Федеральное государственное бюджетное образовательное учреждение  

высшего образования 

«Томский государственный архитектурно-строительный университет» 

 
 
 
 
 
 
 

С.П. Батуев, Н.А. Вихорь 

 
 

ПРОГРАММИРОВАНИЕ  
НА ЯЗЫКЕ АССЕМБЛЕР 

 
 

Учебное пособие 

 
 

 
 
 

 

 
 
 
 
 

Томск 

Издательство ТГАСУ 

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 ₽
В корзину