МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ

"Харківський політехнічний інститут"

 

 

В. О. Кравець, О. М. Рисований

СИСТЕМНЕ ПРОГРАМУВАННЯ

Програмування на мові асемблеру

Рекомендовано Міністерством освіти і науки України як навчальний посібник

для студентів напряму 6.0915 "Комп'ютерна інженерія" вищих навчальних закладів

Харків НТУ "ХПІ" 2007

ББК 018.1.32.973

К78

УДК 004.42

Рецензенти:  I.О. Фурман, д-р техн. наук, професор, академік АН Вищої школи України, Харківський національний технічний університет  сільського господарства; В.І. Хаханов, д-р техн. наук, професор, Харківський державний технічний університет радіоелектроніки; І.І. Обод, д-р техн. наук, професор, Харківський університет Повітряних Сил  ім. Кожедуба

             Кравець, В. О.

К78      Системне програмування. Програмування на мові асемблеру : Навч. посібник /  В. О. Кравець, О. М. Рисований. - Харків : НТУ "ХШ", 2007.-448 с

ISBN 978-966-593-547-6

Наведено подання інформації, архітектурні особливості 16-розрядного МП І8086, 32-розрядного МП PENTIUM, система базових команд МП х86, складання типових обчислювальних процедур у МПТ, організація виведення на екран, складні структури даних, підпрограми, зв'язок асемблеру з мовами високого рівня, робота з консоллю.

Призначено для студентів спеціальностей: 7.091501 "Комп'ютерні системи та мережі", 7.091502 "Системне програмування", 7.091503 "Спеціалізовані комп'ютерні системи", а також може бути корисне для спеціалістів.

 

ISBN 978-966-S93-547-6

 

ЗМІСТ

ВСТУП

1. ПОДАННЯ ІНФОРМАЦІЇ В ЗАСОБАХ МП-ТЕХНІКИ

1.1.   Системи числення

1.2.   Кодування чисел в МП

1.2.1.Прямий код

1.2.2.Обернений код

1.2.3.Додатковий код

1.2.4.Виконання операцій алгебраїчного додавання  в машинах з фіксованою точкою

1.3.   Формати даних

1.4.   Двійково-десяткові коди

1.5.   Кодування символьної інформації

1.6.   Завдання для виконання

2. АРХІТЕКТУРНІ ОСОБЛИВОСТІ 16-РОЗРЯДНОГО  МП/8086

2.1.  Функціонування базового МП

2.1.1.Загальна характеристика 16-розрядного МП /8086

2.1.2.Структурна схема МП /8086

2.2. Програмна модель 16-розрядного МП

2.2.1.Регістри загального призначення

2.2.2.Вказівні й індексні регістри

2.2.3.Покажчик інструкцій

2.2.4.Сегментні регістри

2.2.5.Регістр прапорців

2.2.6. Адресний простір пам'яті і введення-виведення

2.3.Структурна схема МПС з використанням МП /8086

2.4.Способи адресації 16-розрядного МП та оптимізація програм

3.   АРХІТЕКТУРНІ ОСОБЛИВОСТІ 32-РОЗРЯДНОГО МП  PENTIUM

3.1.Типи даних МП PENTIUM

3.2.Регістри МП PENTIUM

3.3.Організація пам'яті МП PENTIUM

3.4.Способи адресації МП PENTIUM

4. БАЗОВІ КОМАНДИ МП ПЛАТФОРМИ х86

4.1.Команди пересилання даних

4.2.Арифметичні команди

4.3.Логічні команди

4.4.Команди обробки бітів та байтів

4.5.Команди передачі керування

4.6.Рядкові операції

4.7.Інші команди

4.8. Числа з рухомою крапкою

4.8.1.Типи даних FPU

4.8.2.Регістри FPU

4.8.3.Виключення FPU

4.8.4.Команди пересилання даних FPU

4.8.5.Базова арифметика FPU

4.8.6.Команди порівняння FPU

4.8.7.Трансцендентні операції FPU

4.8.8.Константи FPU

4.8.9.Команди керування FPU

5. ДИРЕКТИВИ І ОПЕРАНДИ АСЕМБЛЕРУ

5.1.    Директиви асемблеру

5.2.Операнди команд асемблеру

5.3.Структура програми на мові асемблеру

6. СКЛАДАННЯ ТИПОВИХ ОБЧИСЛЮВАЛЬНИХ  ПРОЦЕДУР У МПТ

6.1. Етапи створення програми намові Асемблеру

6.2. Файли .СОМ і .ЕХЕ

6.3. Програмування в мнемокодах лінійних програм

6.4. Програмування в мнемокодах галузевих і циклічних програм

6.5. Завдання для самостійного закріплення матеріалу

6.6. Обмін даними із зовнішніми пристроями в МПС

6.6.1.Ознайомлення з середовищем програмування

6.6.2.Організація взаємодії з об'єктом керування

6.6.2.1.Моделювання процесу керування роботою світлофора

6.6.2.2.Моделювання роботи терморегулятора

6.6.2.3.Моделювання процесу управління роботою мотора

6.6.2.4.Моделювання процесу керування роботою ліфта

7. ОРГАНІЗАЦІЯ ВИВЕДЕННЯ НА ЕКРАН

7.1.Виведення на екран символьної інформації

7.2.Виведення на екран графічних зображень

7.2.1 Виведення на екран простих графічних зображень

7.2.2. Підпрограми та їх використання при відображенні  графічної інформації

7.3.  Виведення на екран тексту засобами BIOS

8.   СКЛАДНІ СТРУКТУРИ ДАНИХ

8.1.  Масиви

8.1.1.Загальні відомості про масиви

8.1.2.Двовимірні масиви

8.1.3. Завдання для самостійного дослідження двовимірних  масивів

8.2.   Рядки

8.2.1.Команди обробки рядків

8.2.2.Завдання для самостійного дослідження команд обробки ланцюжків

8.3.    Структури

8.4.    Об'єднання

8.5.    Записи

9. ПІДПРОГРАМИ

9.1.Прямий виклик підпрограм

9.2.Табличний виклик підпрограм

10. ЗВ'ЯЗОК АСЕМБЛЕРУ З МОВАМИ ВИСОКОГО РІВНЯ

10.1.Характеристика мов системного програмування

10.2.   Загальні відомості

10.3.Зв'язок Pascal-асемблер

10.4.   Зв'язок C++ -асемблер

11. МОДУЛЬНЕ ПРОГРАМУВАННЯ І МАКРОЗАСОБИ МОВИ  АСЕМБЛЕРУ

11.1. Макроасемблер

11.1.1.Стислі відомості про макроасемблер

11.1.2.Псевдооператори equ і =

11.1.3.Макрокоманди

11.2. Макродирективи

11.2.1.Директиви повторення

11.2.2.Директиви умовної компіляції

11.2.3.Директиви генерації повідомлень про помилку ERRxx

11.2.4.Додаткове керування трансляцією

11.2.5.Константні вирази в умовних директивах

11.3. Процедури мови асемблеру

11.3.1.Загальна схема зв'язку модулів на асемблері

11.3.2.Організація інтерфейсу з процедурою

11.3.2.1.Передача аргументів через регістри

11.3.2.2.Передача аргументів через загальну область пам'яті

11.3.2.3.Передача аргументів через стек

11.3.2.4.Використання макродиректив extra і public

11.3.3. Повернення результату з процедури

12. РОБОТА З КОНСОЛЛЮ

12.1. Робота з консоллю в середовищі MS-DOS

12.1.1. Функції BIOS для роботи з консоллю

12.1.1.1. Функції BIOS для роботи з клавіатурою  (переривання 16h)

12.1.1.2. Функції BIOS для роботи з екраном (переривання 10h)
12.1.2. Функції
MS-DOS для роботи з консоллю (переривання 2In)

12.1.2.1.Функції MS-DOS для введення даних із клавіатури 

12.1.2.2.Функції MS-DOS для виведення даних на екран

12.2. Робота з консоллю в середовищі Windows

12.2.1.Асемблер у середовищі Windows

12.2.2.Два підходи до забезпечення роботи з консоллю в середовищі Win32

12.2.3. Програма мінірисьного консольного додатка

12.3. Високорівневе консольне введення-виведення

12.3.1.Функції АРІ для забезпечення високорівневого кон­сольного введення-виведення      

12.3.2.Приклад програми консольного введення-виведення

12.3.3.Програма обробки подій

12.4. Низькорівневе консольне введення-виведення

12.4.1.Робота з мишкою в консолі

12.4.2.Робота з клавіатурою консолі

12.4.3.   Вікно консолі й екранний буфер

12.5. Аналіз функцій BIOS

ДОДАТКИ

Додаток 1. Система команд МП 18086

Додаток 2. Таблиці кодування символів

Додаток 3. Варіанти задач

ЛІТЕРАТУРА