Лабораторная работа. Работа с внешними устройствами. Перенаправление ввода-вывода

Цель работы

Научиться работать с внешними устройствами в среде MS-DOS и перенаправлять ввод или вывод программ.

Ход работы

1) Запустите Pascal;

2) Наберите ниже представленный текст программы;

Program A;

uses crt;

var

x,y: integer;

begin

write ('Vvedite x => ');

readln (x);

y:=8;

x:=x+y;

writeln ('x = ',x);

readln;

end.

3) Сохраните файл с именем prog.pas;

4) Проведите компиляцию файла;

5) Закройте Pascal;

6) Запустите командную строку MS-DOS;

7) Создайте каталог vvod_vivod;

8) Переместите файл prog.exe в каталог vvod_vivod;

9) В командной строке введите: prog.exe > 1.txt;

10) Результат занесите в отчет;

11) Создайте в каталоге vvod_vivod командный файл com.bat, запишите в нем команду Dir;

12) В командной строке введите: com.bat < 2.txt;

13) Результат занесите в отчет;

14) Скопируйте все текстовые файлы из каталога vvod_vivod на Ваш диск, обращаясь к устройству nul, для этого введите: copy *.txt > nul (при этом сообщения никакие не выводятся);

15) Составьте отчет.

Содержание отчета

1) Цель работы.

2) Подробное описание выполнения каждого пункта работы, т.е. для каждого пункта необходимо отразить последовательность команд и результат их выполнения.

3) Распечатка ввода и вывода информации.

4) Вывод о проделанной работе.

Вопросы для защиты работы

1) Определение ОС.

2) ОС MS-DOS: назначение, достоинства и недостатки, системные файлы.

3) Определение файла.

4) Определение каталога.

5) Определение дерева каталога.

6) Перечислите внутренние и внешние команды MS-DOS.

Методические указания

К именам устройств относятся:

- con – при вводе информации подразумевается клавиатура, при выводе – дисплей;

- prn или LPT1(2,3) – принтер или любое устройство, подключенное к параллельному порту.

- COM1(2,3,4) – внешнее устройство, подключенное к последовательному порту.

- nul – нулевое устройство (пустое); все операции ввода-вывода для этого устройства игнорируются (при чтении с него программе сообщается о конце файла, а при выводе на него информация на самом деле никуда не выводится, но программе, которая делает вывод, сообщается, что вывод произошел успешно).

Для перенаправления ввода-вывода информации используются символы >, <, >>, | .

- команда > имя файла — перенаправление в файл сообщений, выводимых с помощью указанной команды. Если файл уже существовал, то он заменяется новым;

- команда >> имя файла — перенаправление в файл сообщений, выводимых с помощью указанной команды. Если файл уже существовал, то сообщения добавляются в конец этого файла;

- команда < имя файла — чтение входных данных команды (программы) не с клавиатуры, а из файла;

- команда | команда — передача сообщений, выводимых на экран первой командой, в качестве входных данных для второй команды.

При этом команда, как обычно, может состоять из имени команды или программы и параметров. Вместо имени файла можно задать имя устройства DOS.

MS DOS реализует ряд сервисных функций ввода/вывода на логическом уровне, которые выступают как пронумерованные функции прерывания Int 21h. При этом прикладная программа пользователя должна сообщить необходимые для данной функции параметры и передать управление DOS, которая и осуществит все необходимые операции по управлению устройством на физическом уровне (где-то, возможно, обратится за помощью к BIOS), а затем вернёт управление прикладной задаче, сообщив, успешно ли завершилась операция или же была допущена ошибка.

Прерывания, в основном, можно разделить на два основных типа: аппаратные (hardware) и программные (software interrupt). Аппаратные прерывания вызываются сигналами от периферийных устройств, требующими обслуживания процессором, а программные, через посредство команды Int, вызывающей какую-либо сервисную функцию (процедуру) DOS или BIOS.

Функции информационного обмена MS DOS в своём развитии изменялись от специализированных программ обмена для каждого типа устройства на основе блока управления файлами FCB (File Control Block) до унификации обмена на основе файловой системы через дескрипторы. Дескриптор или логический номер файла идентифицирует файл или устройство, с которым должна работать прикладная программа. Это упрощает программирование операций ввода/вывода, т.к. позволяет осуществлять обмен информации независимо от природы файла (устройства). Существует пять стандартных дескрипторов файлов, которые предоставляются прикладной программе:

0 – стандартный ввод с консоли (обычно клавиатура);

1 – стандартный вывод на консоль (обычно экран дисплея);

2 – устройство вывода ошибок (всегда дисплей);

3 – внешнее устройство обмена AUX (асинхронный адаптер COM1);

4 – стандартный принтер (первый параллельный порт LPT1).

Стандартный ввод (как и стандартный вывод) можно перенаправить средствами DOS на любое устройство или в файл, а стандартная ошибка всегда связана с экраном (обычно дескриптор 2 используют для вывода диагностических сообщений). Перенаправление ввода или вывода программы осуществляет командный процессор Command.com.

Наши рекомендации