4257

Краткие сведения о программировании процедур работы с устройствами ввода-вывода

Реферат

Информатика, кибернетика и программирование

Краткие сведения о программировании процедур работы с устройствами ввода-вывода Процедуры ввода-вывода в ПК выполняются, как правило, по прерываниям. Состав и использование основных видов прерываний и служебных функций DOS прерывания 21Н Программиро...

Русский

2012-11-15

37.5 KB

4 чел.

Краткие сведения о программировании процедур работы с устройствами ввода-вывода

Процедуры ввода-вывода в ПК выполняются, как правило, по прерываниям. Состав и использование основных видов прерываний и служебных функций DOS прерывания 21Н

Программирование работы с дисплеем

Задание режимов работы и обмен данными с дисплеем можно выполнять при прерываниях BIOS типа 10Н, а вывод данных на дисплей — и при прерываниях DOS типа 21Н. Для уяснения отличий прерываний BIOS от прерываний DOS рассмотрим в качестве примера несколько функций видеопрерываний BIOS.

Видеооперации с прерыванием 10Н BIOS

Это прерывание обеспечивает выполнение 16 различных процедур работы с дисплеем (идентифицируются содержимым регистра АН). Приведем самые важные из них:

  1.  Перемещение курсора в заданную позицию: АН = 2. Координаты курсора (строка, столбец) предварительно засылаются, соответственно, в регистры DH, DL В регистре ВН указывается номер страницы буфера: по умолчанию и в графическом режиме ВН = 0.
  2.  Очистка экрана дисплея: АН = 6 и AL = 0 или АН = 7 и AL = 0.
  3.  Чтение символа, находящегося в текущей позиции курсора, и его атрибута (только для текстовых режимов): АН = 8. В регистре ВН указывается номер страницы буфера. Считанный символ возвращается в AL, а его атрибуты — в АН (атрибуты символа — это его характеристики: цвет, цвет фона, яркость, инвертирование, мигание и т. д.).
  4.  Установка видеорежима изображения (текстовый, графический, цветность, формат, разрешающая способность и т. п.): АН = 0. Видеорежим определяется содержимым регистра AL
  5.  Запись новых атрибутов символа и вывод символа в текущую позицию курсора: АН = 9. Прочие регистры должны содержать:

О AL — записываемый символ;

О BL — его атрибуты или цвет (в графическом режиме);

О ВН — номер видеостраницы;

О СХ — счетчик записываемых символов (число повторений символа).

  1.  Вывод символа в текущую позицию курсора: АН = 9 и BL = 0. Содержимое AL, ВН и СХ аналогично п. 5.
  2.  Чтение текущего видеостатуса: АН = OFh. Возвращает: в AL — текущий режим; в АН — число столбцов на экране; в ВН — активную страницу буфера.
  3.  Вывод строки символов: АН = 13h и AL = 0. Прочие регистры должны содержать: О ES:BP — указатель строки (ее начальный адрес в памяти);

О СХ — длину строки;

О DX — строку дисплея;

О ВН — номер страницы буфера.

Программирование работы с файлами

Файл — выделенная по какому-либо признаку поименованная совокупность информационных записей, хранящихся на диске. Каждой записи в пределах файла присваивается порядковый (тем самым уникальный) номер.

Запись идентифицируется своим адресом:

адрес_записи = имя_файла:номер_записи.

Файловая система поддерживает два типа доступа к записям файла:

последовательный метод доступа;

прямой метод доступа.

Механизм доступа к файлу и его записям при программировании также имеет два варианта:

доступ к файлу с использованием специальной таблицы — управляющего блока файла (FCB);

доступ к файлу по идентификатору (ASCIIZ) и логическому номеру.

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

Прерывания, используемые при работе с файлами на дисках

- Прерывания BIOS:

О 13Н — обмен данными с жестким диском (при его отсутствии — с гибким диском);

О 40Н — обмен данными с гибким диском (если есть жесткий диск).

Эти прерывания обеспечивают выполнение многих функций, определяемых содержимым регистра АН и полезных при разработке вспомогательных программ и средств защиты от копирования, поскольку они позволяют выполнять операции с отдельными дорожками и секторами диска.

- Прерывание DOS 21H.

Имеется несколько десятков различных вариантов прерывания 21Н (определяемых содержимым регистра АН), реализующих так называемые универсальные функции управления файлами при наличии любых версий MS DOS (использующих при обращении к файлам FCB) и несколько десятков вариантов прерывания, предоставляющих так называемые расширенные функции управления файлами при наличии версии MS DOS 2.0 и выше (через строку ASCIIZ).

Далее обсуждаются лишь наиболее популярные варианты прерывания 21Н DOS, реализующие расширенные функции управления файлами.

При прерываниях этого типа файл полностью идентифицируется ASCIIZ-строкой, а после открытия файла — логическим номером, присваиваемым файлу при его создании и открытии (после закрытия файла его логический номер освобождается).

Вот сводка некоторых служебных функций DOS прерывания 21Н:

- АН = 3Ch — создание файла: формируются ASCIIZ-строка, идентифицирующая файл, и атрибут файла; вектор-адрес ASCIIZ-строки файла помещают в регистры DS:DX, в регистр СХ помещают атрибут файла; в регистре АХ возвращается логический номер файла.

- АН = 3Dh — открытие файла: вектор-адрес ASCIIZ-строки помещают в регистры DS:DX, в регистр AL записывается признак возможной работы с файлом (AL = 0 — файл открывается только для чтения, AL = 1 — только для записи, AL = 2 — и для чтения, и для записи); в регистре АХ возвращается логический номер файла.

- АН = 3Eh — закрытие файла (высвобождение его логического номера): логический номер помещают в регистр ВХ.

- АН = 3Fh — чтение из файла: в регистр ВХ помещают логический номер, в СХ — число считываемых байтов, в DS:DX — вектор-адрес буфера (поля ОЗУ), отведенного для записи считываемой информации; число фактически считанных байтов возвращается в регистре АХ.

- АН = 40h — запись в файл: в регистр ВХ помещают логический номер, в СХ — число записываемых байтов, в DS:DX — вектор-адрес буфера (поля ОЗУ), хранящего записываемую информацию; в АХ возвращается число фактически записанных байтов.

- АН = 41h — удаление файла: в регистры DS:DX заносится вектор-адрес ASCIIZ-строки файла.

- АН = 42h — установка указателя текущей записи в файле: в регистр ВХ заносится логический номер, в регистр AL — указание на базовую установку указателя текущей записи (AL в 0 — начало файла, AL - 1 — прежнее значение текущей записи, AL = 2 — конец файла), в регистры CX:DX — смещение указателя относительно базовой позиции (чаще всего 0); в регистрах DX:AX возвращается смещение текущей записи файла относительно начала файла.

- АН = 43h — установка новых атрибутов файла: в регистры DS:DX заносится адрес ASCIIZ-строки файла, в СХ — значения атрибутов, в AL находится «1» (если в AL — «0», то происходит чтение атрибутов, которые возвращаются в СХ).

- АН = 56h — переименование файла: в регистровой паре DS:DX указывается адрес ASCIIZ-строки со старым именем файла, в регистры ES:DI заносится адрес ASCIIZ-строки с новым именем файла.

Во всех перечисленных случаях при появлении ошибки в выполнении процедуры в регистре FL флаг CF устанавливается в «1»; код ошибки возвращается в регистре АХ.


 

А также другие работы, которые могут Вас заинтересовать

22741. Латиноамериканський курс адміністрації Дж. Картера 23.5 KB
  Планы укрепления агрессивной межамериканской военной системы консолидации правых режимов на континенте были приняты на вооружение и администрацией США во главе с Дж. Столкнувшись с падением престижа США в Латинской Америке и стремясь укрепить здесь свои позиции официальный Вашингтон возвестил о пересмотре политики в отношении латиноамериканских государств. Дипломатия США стала усиленно афишировать свой постоянный интерес к этим странам. Президент США Дж.
22742. Етапи війни США у Кореї 82 KB
  Етапи війни США у Кореї. Поэтому сейчас взрывы в Японии рассматривались как начало атомного шантажа США. Эта ошибка в переоценке своих сил вынудили США заплатить за нее очень дорого сначала в Корее а затем во Вьетнаме. Дело состояло в следующем: СССР допустив США в Корею справедливо считала что американцы в свою очередь выделят СССР зону оккупации в Японии.
22743. Основні напрямки зовнішньої політики США на початку 70-х рр 31 KB
  Зайнявши Білий дім 37й американський президент уже в липні 1969 року проголосив нову стратегію США у в'єтнамській війні яка отримала назву доктрини Ніксона . Вже в червні 1969 року почалася евакуація півмільйонного американського контингенту з Південного В'єтнаму. На травень 1972 року тут залишалось 69 тисяч американців. на думку деяких істориків змусило Ханой підписати у Парижі 27 січня 1973 року угоду про припинення військових дій та відновлення миру у В'єтнамі .
22744. Посилення холодної війни США проти соціалістичних країн у період першого президентства Д. Ейзенхауера 31 KB
  Посилення холодної війни США проти соціалістичних країн у період першого президентства Д. Они пожинали плоды послевоенного экономического подъема когда материальное благополучие США еще больше возросло. В 60е годы политизированное студенчество выступило против международной роли США особенно в разрушительной войне во Вьетнаме. Сама жизнь подводила граждан США к поискам нового социального равновесия в стране.
22745. Африканська політика адміністрації Дж. Картера 26.5 KB
  Киссинджер пытались наладить отношения с будущими партнёрами национальноосвободительными силами на юге Африки которые стремились расширить круг своих сторонников на международной арене использовать противоречия международного сообщества с Южной Родезией ЮАР и с колониальными властями Португальской Африки. В частности во время поездки по странам Африки в апрелемае 1976г. Киссинджера в ходе его поездки по странам Африки как прямое указание к действиям. Весомым практическим результатом этой политики для Африки стали посреднические усилия...
22746. Умисел як форма вини 128.5 KB
  Вина - це завжди умисел або необережність. Лише за наявності вини особи щодо вчиненої нею дії (бездіяльності) можна говорити про склад злочину як підставу кримінальної відповідальності.
22747. Доктрина Ейзенхауера 22 KB
  €œДоктрина Ейзенхауера€. У боротьбі за крісло у Білому домі Дуайт Ейзенхауер використав нову зовнішньополітичну доктрину замінивши політику стримування політикою відкидання звільнення ' від комунізму її теоретиком був Дж.Кеннана що у зовнішніх справах Ейзенхауер був людиною гострого політичного розуму і передбачуваності. Президент зазнав нищівної критики військові вимагали збільшення фінансування на звичайні озброєння але Ейзенхауер вистояв.
22748. Політика США щодо СРСР у першій половині 80-х рр 27.5 KB
  Політика США щодо СРСР у першій половині 80х рр. У зовнішньополітичній діяльності президента Рейгана варто розрізнити два періоди відповідно до термінів президентства: 19811984 рокичас різкої конфронтації з СРСР курсу на військову перевагу США у світі домінування силових методів у розв'язанні міжнародних конфліктів дії доктрини Рейгана доктрини неоглобалізму тобто протистояння з СРСР у будьякому куточку планети; 19851989 рокиперіод пошуку шляхів для виходу із політики глобального протистояння з СРСР нормалізації...
22749. Зрив США Паризької наради у верхах у 1960 р 25 KB
  обследовав сверхсекретные объекты Советского Союза Семипалатинский ядерный полигон авиабазу стратегических бомбардировщиков Ту95 близ него полигон противоракетной обороны в СарыШагане ракетный полигон ТюраТам космодром Байконур U2 выскользнул из пределов СССР южнее города Мары. Отмолчались и продолжили планирование разведывательных полетов над СССР. Дело в том что в мае должно было состояться совещание большой четверки США СССР Великобритании и Франции в Париже где предстояла новая встреча главы американского государства с...