WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

ГоловнаІнформатика, Компютерні науки → Системне програмування та операційні системи - Контрольна робота

Системне програмування та операційні системи - Контрольна робота

забезпечують базові програмні елементи; можливість програмування на низькому рівні з доступом до адрес оперативної пам'яті; великі бібліотеки службових підпрограм та класів. Ці обставинизробили мови С та С++ основними мовами розробки операційних систем, компіляторів, тощо, чим ще більше підвищили їх популярність. З іншого боку, вони мають і ряд недоліків, до яких в першу чергу слід віднести наявність синтаксичних неоднозначностей, які обмежують можливості компілятора щодо контролю правильності програми.
Альтернативою С та С++ виступає мова Паскаль, яка має багато реалізацій (в тому числі сучасна програмна система Delphi), кожна з яких завдяки чіткому синтаксису мови гарантує не лише синтаксичний, але і семантичний контроль.
Крім них до групи універсальних мов програмування відносяться, наприклад, Basic, Visual Basic, Ada, Modula, кожна з яких має свої особливості, а отже, і свою область застосування.
Спеціалізовані мови розробника програмного забезпечення використовуються для створення лише спеціалізованого програмного забезпечення. Такими є: мови баз даних (Fox-Pro, SQL та програмні системи Access, Oracle, Paradox), мови програмування прикладних програм для мереж (Java-Script, VBScript) та інші.
Мови програмування низького рівня, до яких відноситься асемблер, дозволяють здійснювати програмування практично на рівні машинних кодів. При цьому можна досягти оптимальних критеріїв як з точки зору часу виконання програми, так і з точки зору ресурсів пам'яті. Але ці мови не придатні для створення великих програм та програмних систем, принаймні тому, що не підтримують принципів структурного програмування. Вони використовуються для невеликих програм або у вигляді вставок в програми, написані мовами високого рівня.
Крім вибору мови програмування можливий і вибір середовища програмування, тобто професійного програмного комплекса з вбудованим текстовим редактором, компілятором, компонувальником, налагоджувачем, тощо, наявність яких значно спрощує створення програм.
Програмування на мові асемблера вважається складною задачею, причини цього такі:
1. Мова асемблера будь-якого процесора суттєво складніша будь-якої мови високого рівня. Щоб скористатись всіма можливостями мови асемблера, треба по крайній мірі знати команди мікропроцесора, а їх число з усіма можливими варіантами переважає 100, їх кількість значно перевищує кількість операторів і ключових слів інших мов високого рівня. Проблема ускладнюється ще тим, що зміни в асемблері виникають набагато швидше ніж в мовах високого рівня, це зв'язано з появою нових мікропроцесорів і відповідно нових команд.
2. Програміст, який використовує мови асемблера повинен сам слідкувати за розподілом пам'яті та вмістом регістрів, щоб коректно розподіляти і оперувати пам'яттю, в мовах високого рівня це робиться автоматично при допомозі компілятора, але ця обставина має перевагу: можна оптимально розташувати дані в пам'яті, забезпечити максимальну швидкість виконання та мінімальну довжину програми.
3. Програми на мові асемблера важче проектувати та підлагоджувати, треба весь час пам'ятати, що конкретно знаходиться в кожному регістрів в даній комірці пам'яті. Прийнято вважати, що розробка програми тільки на мові асемблера, деякого процесора, навіть якщо він поширений не рекомендується. Зрозуміло, що будь-яку програму можна написати тільки з допомогою асемблера, але для цього треба використати набагато більшу кількість команд і час який піде на її виконання і відладку буде набагато більший ніж для мови високого рівня. Набагато вигідніше писати програми на мові високого рівня, а найбільш критичні частини на швидкодії писати на мові асемблера. Наприклад на асемблері можна скласти процедури для реалізації вводу-виводу низького рівня, процедури обробки переривань та деякі інші.
Розробка програми на мові асемблера включає кілька етапів.
1) Підготовка початкового тексту програми;
2) Асемблювання програми(отримання об'єктного коду);
3) Компоновка програми(отримання виконуваного файлу);
4) Відладка програми(знаходження помилок).
Ці етапи циклічно повторюються.
Текст програми на мові асемблера записується в один або кілька файлів, імена файлів і їх розширення можуть бути будь-які, прийнято для файлів які містять програми мовою асемблера прийнято використовувати розширення *.asm. Для файлів визначених констант і повних типів розширення *.inc. Ці файли є текстовими їх можна набрати в будь-якому текстовому редакторі. Можна також використати інтегровані середовища для розробки програм, при програмуванні зручно виділяти один каталог для збереження всіх файлів програми і звідти запускати всі необхідні програми для підготовки, асемблювання та компонування програми. При використанні стандартних редакторів тексту, редаговані тексти треба зберігати у вигляді звичайних файлів у форматі ASCII, це означає, що ці файли треба зберігати без додаткових символів, ці символи часто вставляють в текст різні спеціалізовані редактори, наприклад WORD.
Підготовлений текст мови асемблер є початковим для спеціальних програм, які називаються асемблерами, далі програма асемблера. Задача програми асемблера перетворити текст програми у форму двійкових команд, останні можуть вже бути виконанні мікропроцесором. Після асемблювання дістають так звані файли об'єктних модулів, які мають відповідні розширення *.obj. Для отримання об'єктних файлів необхідного виконати відповідну програму асемблера masm фірми Microsoft, або tasm фірми Borland. В обох випадках після команди вказується ім'я файлу : masm prog1.asm, tasm prog1.asm.
Така форма команди є мінімальною, крім цієї форми можна використовувати іншу форму задаючи перед іменем файлу опції або ключі. Якщо програма складається з декількох файлів, то їх асемблювання проводиться незалежно один від одного, хоча отримані об'єктні файли представлені вже в двійковій формі запускати їх на виконання не можливо.
Текст програми може знаходитись в декількох файлах, змінні які описані в цих файлах можуть використовуватися спільно, якщо такі файли асемблюються окремо, то не можливо дістати повну інформацію, для того, щоб генерувати виконавчий код. Тому процес підготовки програми обов'язково включає в себе етап компоновки. На цьому етапі визначають всі невідомі, при окремому асемблювані, адреси всіх змінних або функцій, які використовуються спільно. Процес об'єднання об'єктних модулів в один файл виконується спец. програмою, яка називається компоновщиком. Це може бути програма link фірми Microsoft, або tlink фірми Borland, отримуваний виконуваний файл має розширення *.exe, або *.com. Компановщику треба передати імена відповідних об'єктних файлів.
Link prog1.obj prog2.obj
Tlink prog1.obj prog2.obj
Після компонування отримується
Loading...

 
 

Цікаве