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»; код ошибки возвращается в регистре АХ.


 

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

79096. Наследование по завещанию. Порядок составления. Условия действительности. Содержание завещания. Обязательная доля. Назначение наследника 23.27 KB
  Завещание по римскому праву это не просто всякое распоряжение лица своим имуществом на случай смерти а лишь такое которое содержало назначение наследника. Назначение наследника должно было быть в самом начале завещания и без него завещание не имело юридической силы. Завещание это односторонняя сделка выражающая волю лишь одного лица завещателя. На практике это позволяло завещателю в любой момент и без какихлибо ограничений отменить или изменить составленное им ранее завещание.
79097. Наследование по закону. Реформы претора. Наследование по закону в период империи 30.68 KB
  То обстоятельство что завещание получит действительное значение лишь при условии если назначенный в нем наследник согласится принять наследство не делает завещания договором ибо выражение воли наследника имеет место не при совершении завещания как например согласие одаряемого при дарении а только после смерти завещателя как совершенно самостоятельный отдельный от завещания акт. Некоторые лица хотя и имели testmenti fctio pssiv но не могли получать наследство полностью или в части если не отпадает обстоятельство признаваемое по...
79098. Общие положения о древнеримской семье. Агнатское и когнатское родство 18.89 KB
  Семья в древнейший известный нам период римской истории представляет тип промежуточной патриархальной семьи объединявшей под властью главы семьи pterfmilis жену детей других родственников кабальных а также рабов. Глава семьи и властелин древнейшей семьи домовладыка единственный полноправный гражданин квирит термин производимый многими исследователями от греческого kueros власть т. имеющий власть.С образованием государства внутри рода происходит имущественная дифференциация; власть внутри рода попадает в руки наиболее богатых...
79099. Опека и попечительство. Завещательная опека 21.41 KB
  Опека рассматривалась в Древнем Риме как обязанность лица и поэтому отказаться от исполнений обязанностей опекуна можно было только по уважительной причине. Если не было завещательной опеки и невозможно было установить законную опекуна назначал претор при участии трибунов учреждаемая опека. Особенности учреждаемой опеки: согласия малолетних на установление подобной опеки не требовалось; опекун должен был проживать в округе претора назначающего опе кунство; предварительно узнавали о нравственном поведении будущего опекуна; не...
79100. Определение деликта. Характер и объем ответственности 21.63 KB
  Различались частные и публичные деликты. Публичные деликты посягали на государственные интересы а частные на права и интересы отдельной личности. В настоящем курсе рассматриваются только частные деликты. Основные отличия деликтного обязательства от договорного: основание возникновения не договор а правонарушение; не допускалось правопреемство в отношении должника; штрафная ответственность возлагалась не солидарно на каждого из должников а кумулятивно то есть суммировалась по числу ответчиков и могла быть взыскана с каждого в полном...
79101. Определение обязательства. Основания возникновения обязательств. Классификация обязательств. Сделки. Контракты и пакты 24.8 KB
  Римское право определяло обязательство как правовые оковы в силу которых мы принуждаемся чтонибудь исполнить согласно законам нашего государства . В позднейший период обязательство стало рассматриваться как юридическое отношение между двумя лицами в силу которого одно из них именуемое кредитором имеет право требовать от другого лица именуемого должником исполнения чеголибо в свою пользу. В отличие от вещного права обязательство связывает только тех лиц которые в нем участвуют и поэтому кредитор может предъявить иск не ко всем а...
79102. Особые средства преторской защиты. Понятие исковой давности 19.33 KB
  Помимо предоставления исков преторы пользуясь принадлежащей им властью так называемым imperium оказывали иногда защиту особыми средствами своими безусловными в противоположность формуле иска непосредственными распоряжениями хотя с течением времени и здесь преторы в некоторых случаях перешли на путь условных распоряжений. С течением времени по мере увеличения числа дел претор стал давать интердикты без проверки фактов в виде условного распоряжения если подтвердятся факты на которые ссылается заявитель и тогда интердикты с...
79103. Открытие наследства. Принятие наследства. Последствия принятия. Иски о наследстве. Выморочное наследство 23.96 KB
  Принятие наследства. Открытие наследства происходило в момент смерти наследодателя. За время между открытием наследства и его принятием наследниками наследственное имущество не принадлежало никому и именовалось лежачее наследство.
79104. Отцовская власть. Основания возникновения. Правовое положение детей. Имущественные права подвластных детей. Пекулий и его виды 24.19 KB
  По праву Юстиниана rrogtio совершалось путем получения на то императорского рескрипта; doptio путем занесения в судебный протокол pud ct соглашения прежнего домовладыки усыновляемого с усыновителем в присутствии усыновляемого. Последствием doptio было прекращение родительской власти прежнего домовладыки и установление власти усыновителя. Если правонарушитель переходил под власть другого домовладыки то и ответственность по ctio noxlis переходила на нового домовладыку: nox cput sequitur ответственность следует за виновным лицом.С...