Лабораторна робота №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², а вивід через дескриптор виводу ² , то при звичайному запуску програми командою

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 так як би підставляє їй на вході і виході інші пристрої.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: