
- •Методичні вказівки
- •«Системне програмування»
- •5.05010201«Обслуговування комп’ютерних систем і мереж»
- •Рецензія
- •Тема 3. Мова програмування Assembler ……………………………..……..135
- •1.1. Історія розвитку мов системного програмування Питання для опрацювання
- •Методичні рекомендації
- •1. Класифікація мов програмування
- •2. Розвиток мов системного програмування
- •Студент повинен
- •Питання для самоконтролю
- •Історія виникнення мови програмування с
- •2. Сфери застосування мови програмування с
- •1. Двійкова, вісімкова та шістнадцяткова системи числення.
- •2. Формати представлення чисел у різних системах числення.
- •3. Стандарти представлення чисел зі знаком.
- •Формати з плаваючою комою
- •Векторні формати
- •Приклади
- •Студент повинен
- •Питання для самоконтролю
- •Література
- •Питання для опрацювання
- •Методичні рекомендації
- •Приклад:
- •2. Керуючі послідовності
- •1. Види логічних операцій, які виконуються в комп’ютері.
- •За структурою
- •За типом запису даних
- •За архітектурними особливостями
- •За формою подання даних
- •Залежно від часу виконання операцій
- •Залежно від реалізації мікроалгоритму
- •Пристрій управління
- •Операційний пристрій
- •Регістри
- •2. Алгоритми виконання логічних операцій.
- •Побітові логічні операції
- •Бітові зсуви
- •Бітові операції як основа цифрової техніки[ред. • ред. Код]
- •Студент повинен
- •Питання для самоконтролю
- •Література
- •Питання для опрацювання
- •Методичні рекомендації
- •Студент повинен
- •Питання для самоконтролю
- •Література
- •Питання для опрацювання
- •Методичні рекомендації
- •Порядок використання вбудованих функцій під час написання програм.
- •2. Порядок практичного використання багатовимірних масивів під час створення програм.
- •Студент повинен
- •1. Порядок задання і створення масивів структур.
- •2. Порядок практичного використання масивів структур під час створення програм.
- •1. Створення динамічних масивів за допомогою вказівників.
- •2. Передача аргументів процедур та функцій з використанням вказівників.
- •3. Використання масивів вказівників.
- •Студент повинен
- •Питання для самоконтролю
- •1. Головні означення та властивості теорії графів.
- •Зображення графів на площині
- •1. Порядок переходу у графічний режим виводу інформації.
- •2. Функції для побудов геометричних фігур.
- •1. Базові поняття об’єктно‑орієнтованого програмування (ооп).
- •2. Успадкування та поліморфізм.
- •Практичні прийоми програмування з використанням об’єктів.
- •Студент повинен
- •Питання для самоконтролю
- •Література
- •Тема 3. Мова програмування Assembler
- •3.1. Спеціалізоване використання регістрів процесора Intel 8086 Питання для опрацювання
- •Методичні рекомендації
- •1. Спеціалізоване використання регістрів даних.
- •2. Спеціалізоване використання регістрів-вказівників.
- •3.2. Способи адресації пам’яті у процесорах Intel 8086
- •1. Регістрова адресація.
- •2. Безпосередня адресація.
- •3. Пряма адресація.
- •4. Непряма адресація та її різновиди.
- •Питання для самоконтролю
- •1. Особливості роботи з відеорежимами.
- •2. Порядок задання кольору для виведення даних.
- •1. Функції для керування роботою послідовного порту
- •2.Функції для керування роботою паралельного порту
1.1. Історія розвитку мов системного програмування Питання для опрацювання
Класифікація мов програмування.
Розвиток системного програмування.
Методичні рекомендації
Під час вивчення даної теми студенти мають звернути увагу на класифікацію та тенденції розвитку мов системного програмування.
1. Класифікація мов програмування
Прогрес комп'ютерних технологій визначив процес появи нових різноманітних знакових систем для запису алгоритмів – мов програмування. Сенс появи такої мови –набір обчислювальних формул та додаткових команд, який перетворює даний набір на алгоритм.
Мова програмування служить двом зв'язаним між собою цілям: вона дає програмісту апарат для завдання дій, які повинні бути виконані, і формує концепції, якими користується програміст, роздумуючи про те, що робити. Першій меті ідеально відповідає мова, яка настільки "близька до машини", що всіма основними машинними аспектами можна легко і просто оперувати достатньо очевидним для програміста чином. Другій меті ідеально відповідає мова, яка настільки "близька до вирішуваної задачі", щоб концепції її рішення можна було виражати прямо і коротко. Тому як і у випадку з природними мовами, є величезна користь бути, принаймні, двомовним. Мова надає програмісту набір концептуальних інструментів, якщо вони не відповідають завданню, то їх просто ігнорують. Наприклад певну задачу можна виконувати як із застосуванням об’єктів, так і без них.
Може показатися дивовижним, але конкретний комп'ютер здатний працювати з програмами, написаними лише на його рідній машинній мові. Існує майже стільки ж різних машинних мов, скільки і комп'ютерів, але всі вони суть різновиду однієї ідей прості операції проводяться із швидкістю блискавки на двійкових числах.
Персональні комп'ютери IBM використовують машинну мову мікропроцесорів сімейства 8086, оскільки їх апаратна частина грунтується саме на даних мікропроцесорах.
Можна писати програми безпосередньо на машинній мові, хоча це і складно. На зорі комп'ютеризації(на початку 1950-х г.г.), машинна мова була єдиною мовою, більшого людина на той час не придумала. Для порятунку програмістів від суворої машинної мови програмування, були створені мови високого рівня.
З урахуванням наведених фактів, мови програмування можна поділити на такі типи:
Машинно–орієнтовані мови – це мови, набори операторів і засобів яких істотно залежать від особливостей ЕОМ (внутрішньої мови, структури пам'яті і т.д.). Машинно–орієнтовані мови дозволяють використовувати всі можливості і особливості конкретної моделі ЕОМ. У них такі переваги:
висока якість створюваних програм (малий об’єм і висока швидкість виконання);
можливість використання конкретних апаратних ресурсів певної моделі ЕОМ;
передбаченість об'єктного коду і замовлень пам'яті (це означає, що програма потребує мало ресурсів для виконання);
Але вони також мають ряд недоліків, зокрема:
для складання ефективних програм необхідно знати систему команд і особливості функціонування даної ЕОМ;
трудомісткість процесу складання програм, низька швидкість програмування;
неможливість безпосереднього використання програм, складених на цих мовах, на ЕОМ інших типів.
Машинно-орієнтовані мови ще називають мовами низького рівня. Прикладом машинно-орієнтованої мови є мова Асемблера.
Машинно–незалежні мови – це засіб опису алгоритмів рішення задач та інформації, яка підлягає обробці. Вони зручні у використанні для широкого кола користувачів і не вимагають від них знання особливостей організації функціонування певної моделі ЕОМ.
Подібні мови одержали назву високорівневих мов програмування. Програми, що складаються на таких мовах – це послідовності операторів, структуровані згідно правилам розгляди мови(завдання, сегменти, блоки і т.д.). Після написання такої програми вони підлягає перекладу (трансляції) на машинну мову.
Т.ч., командні послідовності (процедури, підпрограми), часто використовувані в машинних програмах, представлені у високорівневих мовах окремими операторами. Програміст дістав можливість не розписувати в деталях обчислювальний процес на рівні машинних команд, а зосередитися на основних особливостях алгоритму.
Проблемно – орієнтовані мови. З розширенням областей застосування обчислювальної техніки виникла необхідність формалізувати уявлення постановки і рішення нових класів завдань. Необхідно було створити такі мови програмування, які, використовуючи в даній області позначення і термінологію, дозволили б описувати необхідні алгоритми рішення для поставлених завдань, ними стали проблемно – орієнтовані мови. Ці мови, мови орієнтовані на рішення певних проблем, повинні забезпечити програміста засобами, що дозволяють коротко і чітко формулювати завдання і одержувати результати в необхідній формі.
Проблемних мов дуже багато, наприклад:
Фортран, Алгол – мови, створені для вирішення математичних завдань;
Simula, Сленг - для моделювання;
Лісп, Снобол – для роботи з обліковими структурами.
Perl. Java, PHP - для обробки тексту під час створення веб-сторінок.
Універсальні мови були створені для широкого кола завдань: комерційних, наукових, моделювання і т.д. Перша універсальна мова була розроблена фірмою IBM, що став в послідовності мов Пл/1. Друга по потужності універсальна мова називається Алгол-68. Він дозволяє працювати з символами, розрядами, числами з фіксованою і плаваючою комою. Пл/1 має розвинену систему операторів для управління форматами, для роботи з полями змінної довжини, з даними організованими в складні структури, і для ефективного використання каналів зв'язку. Мова враховує включені в багато машин можливості переривання і має відповідних операторів. Передбачена можливість паралельного виконання ділянок програм.
Програми в Пл/1 компілюються за допомогою автоматичних процедур. Мова використовує багато властивостей Фортрану, Алголу, Коболу. Проте він допускає не тільки динамічний, але і керований і статистичний розподіли пам'яті.
Діалогові мови. Поява нових технічних можливостей поставила завдання перед системними програмістами – створити програмні засоби, що забезпечують оперативну взаємодію людини з ЕОМ їх назвали діалоговими мовами.
Ці роботи велися в двох напрямах. Створювалися спеціальні мови, що управляють, для забезпечення оперативної дії на проходження завдань, які складалися на будь-яких раннє неопрацьованих (не діалогових) мовах. Розроблялися також мови, які окрім цілей управління забезпечували б опис алгоритмів рішення задач.
Необхідність забезпечення оперативної взаємодії з користувачем зажадала збереження в пам'яті ЕОМ копії початкової програми навіть після отримання об'єктної програми в машинних кодах. При внесенні змін в програму з використанням діалогової мови система програмування за допомогою спеціальних таблиць встановлює взаємозв'язок структур початкової і об'єктної програм. Це дозволяє здійснити необхідні редакційні зміни в об'єктній програмі.
Одним з прикладів діалогових мов є Бейсик. Бейсик використовує позначення подібні звичайним математичним виразам. Багато операторів є спрощеними варіантами операторів мови Фортран. Тому ця мова дозволяє вирішувати достатньо широкий круг завдань. В принципі, діалоговою мовою можна назвати і Паскаль, оскільки він був створений як навчальна мова.