- •Контрольна робота №1 з курсу "Системне програмування"
- •Завдання:
- •Рішення
- •Недоліки
- •Лабараторна робота №1
- •Короткі теоретичні відомості
- •Лабораторне завдання
- •Текст програми Hello.Asm
- •Лабораторна робота №2
- •Короткі теоретичні відомості Стандартні способи вводу-виводу dos
- •Ввід з клавіатури символьної інформації.
- •Функції dos виводу даних на екран.
- •Лабораторне завдання
- •Текст програми
- •Лабараторна робота №3
- •Короткі теоретичні відомості
- •Характеристика атрибута символа у відеобуфері.
- •Коди кольорів стандартної палітри. Таблиця 1
- •Довідкові дані по функціях bios
- •Лабораторне завдання
- •Текст програми
Лабораторна робота №2
Мета роботи:
-
Освоєння стандартних способів вводу-виводу DOS.
-
Розробка програм по обробці символьної інформації з використанням стрічкових команд.
Короткі теоретичні відомості Стандартні способи вводу-виводу dos
Для того щоб написати просту, але завершену програму, необхідно знати три речі - як вводити дані, як виводити результат і як зупинити виконання програми. В мовах високого рівня є спеціальні оператори вводу/виводу, які дозволяють в зручній формі реалізувати ці функції. У системі команд процесора Ix86 також є команди вводу/виводу, але вони реалізовують ці операції на самому низькому, фізичному рівні, тобто забезпечують звертання до портів вводу/виводу за конкретними адресами. Для забезпечення вводу/виводу інформації на цьому рівні програміст повинен знати номери портів кожного пристрою, а також протоколи або алгоритми обслуговування цих пристроїв. Операційна система MS DOS реалізовує множину сервісних функцій вводу/виводу на логічному рівні, які виступають як пронумеровані функції переривання Int 21h. Прикладна програма користувача повинна повідомити необхідні для даної функції параметри і передати управління DOS, яка і здійснить всі необхідні операції по управлінню пристроєм на фізичному рівні, а потім поверне управління прикладній задачі, повідомивши, чи успішно завершилася операція, або ж була допущена помилка.
Функції інформаційного обміну MS DOS в своєму розвитку змінювалися від спеціалізованих програм обміну для кожного типу пристрою на основі блоку управління файлами FCB( див. Л.[3, 6, 7]), до уніфікації обміну на основі могутньої файлової системи (починаючи з DOS 3.0) через дескриптори. Дескриптор або логічний номер файла ідентифікує файл або пристрій, з яким повинна працювати прикладна програма. Це спрощує програмування операцій вводу/виводу, так як дозволяє здійснювати обмін інформацією незалежно від файла (пристроя). Існує п'ять стандартних дескрипторів файлів, які надаються прикладній програмі:
0^ стандартний ввід ( звичайно клавіатура ),
1 ^ стандартний вивід ( звичайно екран дисплея ),
2 ^ пристрій виводу помилок ( завжди дисплей ),
3 ^ зовнішній пристрій обміну AUX ( асинхронний адаптер COM1),
4 ^ стандартний принтер (перший паралельний порт LPT1).
При виклику будь-якої функції DOS код функції вміщується в регістр AH, додаткові параметри розташовуються в інших регістрах ЗП. Інформація, що повертається міститься в регістрі AL або AX, якщо прапор CF=0. Прапор CF встановлюється в 1, якщо сталася яка-небудь помилка, код якої заноситься в регістр AX (код повернення помилки). Можливі коди помилок наводяться в керівництві по DOS і в літературі, наприклад в [4].
Стандартний ввід (як і стандартний вивід) можна перенаправляти засобами DOS на будь-який пристрій або в файл, а стандартна помилка завжди пов'язана з екраном (звичайно дескриптор 2 використовують для виведення діагностичних повідомлень ).
Перенаправлення вводу або виводу здійснює командний процесор COMMAND.COM. Якщо, допустимо, в програмі PROG передбачений ввід даних через дескриптор стандартного вводу 0, а вивід через дескриптор виводу 1, то при звичайному запуску програми командою
PROG.EXE
програма буде вимагати вхідні дані з клавіатури, і виводити результати своєї роботи на екран. Якщо, однак, при запуску програми використати символ перенаправлення
PROG.EXE>FILE.TXT
система сама створить файл FILE.TXT, і весь вивід буде записаний в цей файл. Ввід як і раніше буде здійснюватися з клавіатури. Запуск програми командою
PROG.EXE < FILE.DAT
приведе до того, що програма всю необхідну їй інформацію спробує ввести з файла FILE.DAT. Тому цей файл повинен бути підготовлений користувачем зазделегідь. Вивід знову буде здійснено на екран. Нарешті команда
PROG.EXE < FILE.DAT > FILE.TXT
змусить програму виконуватися в режимі вводу інформації з файла FILE.DAT і виводу в файл FILE.TXT. Ні екран, ні клавіатура використовуватися не будуть. Сама програма нічого не знає про ці перенаправлення - вона у всіх випадках звертається до стандартного пристрою вводу для вводу даних і до стандартного пристрою виводу для їх виводу. Просто DOS так як би підставляє їй на вході і виході інші пристрої.