Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Прерывания BIOS и MS-DOS




Системное программное обеспечение аппаратных компонент ПК находится в ПЗУ, расположенной на системной плате и носит название BIOS(Basic Input-Output System, базовая система ввода-вывода).

Система BIOS выполняет процедуру самопроверки POST, которая активизируется при включении питания или при системном сбросе, проверяет аппаратуру системы и инициализирует для нормальной работы некоторые узлы, а также содержит ряд системных сервисов, например, определения объема памяти, конфигурации внешних устройств, установки даты и времени суток.

Кроме того, BIOS управляет всеми прерываниями. Система BIOS строит таблицу прерываний (инициализирует векторы прерываний), выполняет прерывание INT 11h (получение списка присоединенного оборудования) и INT 12h (запрос размера физической памяти). Подпрограммы обработки прерываний находятся в модуле ПЗУ, в том же, что и процедура POST.

Среди прерываний BIOS для пользователя могут быть полезны функции прерывания 10h (вывод информации на дисплей), 13h (дисковые операции), 14h (обмен данными через последовательный порт), 16h (обмен данными с клавиатурой), 17h (функции вывода на печать), 1Ah (функции времени) и ряд других.

Прерывания в диапазоне от 20h до 27h закреплены за функциями операционной системы MS-DOS (табл. 93). Эти прерывания проще в использовании и менее машинно-зависимы, чем их BIOS аналоги. Например, многие функции прерывания INT 21h не имеют собственной реализации, а только транслируются в один или несколько вызовов функций BIOS. Дополнительную информацию по применению функций можно получить в [2,4,6].

 

 

Табл. 93. Прерывания операционной системы MS-DOS.

Номер Описание прерывания
  Завершение программы и передача управления операционной системе.
  Вызовы функций операционной системы MS-DOS. Вызов функции в соответствии с кодом в регистре AH.
  Адрес подпрограммы обработки завершения задачи.
  Адрес выхода при обработке комбинации Ctrl-Break.
  Адрес подпрограммы реакции на критическую ошибку.
  Абсолютное чтение с диска.
  Абсолютная запись на диск.
  Завершение программы с сохранением ее в памяти (резидентная программа).
28-3F Зарезервированы для MS-DOS.

 

 

Многие из функций MS-DOS осуществляют проверку своего выполнения. При успешном выполнении функции флаг CF равен 0, и 1 в случае возникновения ошибки. В последнем случае код ошибки возвращается в регистр AX. В табл. 94 описаны значения кодов ошибок.

 

 

Табл. 94. Коды ошибок при вызовах функций MS-DOS.

Код Значение
  Ошибочный номер функции.
  Файл не найден.
  Путь к файлу не найден.
  Слишком много открытых файлов (не осталось свободных логических номеров).
  Доступ не разрешен.
  Ошибочный логический номер файла.
  Управляющий блок памяти разрушен.
  Недостаточно памяти.
  Ошибочный адрес блока памяти.
  Ошибочная аппаратная среда.
  Ошибочный формат.
  Ошибочный код доступа.
  Ошибочные данные.
  Ошибочное имя дисковода.
  Попытка удалить текущую директорию.
  Неверное устройство.
  Превышен предел числа файлов.

 

 

Функции прерывания 21h предоставляют множество возможностей по взаимодействию с клавиатурой, дисплеем, дисковой системой, последовательным адаптером. Наиболее полезные функции перечислены в табл. 95.

 

Табл. 95. Функции прерывания 21h.

Регистр Операция Дополнительные входные регистры Выходные регистры
Функции по работе с клавиатурой
  Ожидание набора символа на клавиатуре и последующее изображение его на экране (с проверкой на Ctrl-Break) Не используются AL = символ
  Чтение символа с клавиатуры (без проверки на Ctrl-Break) DL = 0FFh AL = очередной символ, если буфер клавиатуры не пуст; AL = 0, если буфер клавиатуры пуст
  Ожидание набора символа на клавиатуре без последующего его изображения (без проверки на Ctrl-Break) Не используются AL = символ
  То же, что функция 7, но с проверкой на Ctrl-Break Не используются AL = символ
A Чтение клавиатурной строки в буфер DS:DX = Адрес буфера Первый байт буфера = размер буфера Второй байт буфера = число фактически прочитанных символов
B Чтение состояния клавиатуры Не используются AL = 0FFh, если клавиатурная строка пуста, AL = 0, если она содержит хотя бы один символ
C Очистка буфера клавиатуры и вызов функции для работы с клавиатурой AL = номер функции для работы с клавиатурой В соответствии с вызываемой функцией
Функции по работе с дисплеем
  Изображение символа (с проверкой на Ctrl-Break) DL = символ Не используются
  Печать символа DL = символ Не используются
  Изображение символа (без проверки на Ctrl-Break) DL = символ Не используются
  Изображение строки DS:DX = адрес строки, которая должна заканчиваться символом $ Не используются
Функции для обмена данными с асинхронным последовательным портом
  Ожидание ввода символа через асинхронное последовательное устройство Не используются AL = символ
  Вывод символа на асинхронное последовательное устройство DL = символ Не используются
Функции управления файлами
D Сброс текущего дисковода в начальное состояние Не используются Не используются
E Задание нового текущего дисковода DL = номер дисковода (0 = A, 1 = B, 2 = C) AL = число дисководов (2 в случае одного дисковода)
2E Задание режима проверки DL = 0 AL = 0 для отключения проверки AL = 1 для включения проверки Не используются
Функции по работе с датами и временем
2A Чтение системной даты Не используются CX = год (1980-2099) DH = месяц (1-12) DL = день (1-31)
2B Установка системной даты CX, DX = дата в том же формате, что и для функции 2A AL = 0, если дата правильная AL = FF, если дата ошибочная
2C Чтение системного времени Не используются CH = часы (0-23) CL = минуты (0-59) DH = секунды (0-59) DL = сотые доли секунды (0-99)
2D Установка системного времени CX, DX = время в том же формате, что и для функции 2C AL = 0, если время правильное AL = FF, если время ошибочное
Функции по работе с векторами прерываний
  Установка вектора прерывания DS:DX = новое значение вектора Не используются
  Чтение вектора прерывания AL = номер (тип) прерывания ES:BX = значение вектора
Функции по работе с директориями
  Создание директории (команда MKDIR) DS:DX = адрес ASCIIZ-строки с именем директории Возможен код ошибки 3 или 5
3A Удаление директории (команда RMDIR) DS:DX = адрес ASCIIZ-строки с именем директории Возможен код ошибки 3
3B Смена текущей директории (команда CHDIR) DS:DX = адрес ASCIIZ-строки с именем новой директории  
  Чтение имени текущей директории DL = номер дисковода (0 = текущий, 1 = А и т.д.) DS:DI = адрес буфера размером 64 байта DS:SI = адрес ASCIIZ-строки Возможен код ошибки 15
Функции расширенного управления файлами
  Получение сведений о свободном месте на диске DL = номер дисковода (0 = текущий, 1 = А и т.д.) AX = 0FFFFh, если обнаружена ошибка AX = число секторов в кластере BX = число свободных кластеров DX = общее число кластеров CX = число байтов в секторе
3C Создание файла DS:DX = адрес ASCIIZ-строки CX = атрибут файла AX = логический номер файла Возможен код ошибки 3, 4 или 5
3D Открытие файла DS:DX = адрес ASCIIZ-строки AL = 0 при открытии для чтения AL = 1 при открытии для записи AL = 2 при открытии для чтения и записи AX = логический номер файла Возможен код ошибки 2, 4, 5 или 12
3E Закрытие логического номера файла BX = логический номер файла Возможен код ошибки 6
3F Чтение файла или ввод данных с устройства BX = логический номер файла CX = число считываемых байтов DS:DX = адрес буфера AX = число фактически считанных байтов AX = 0 при попытке чтения за концом файла Возможен код ошибки 5 или 6
  Запись в файл или вывод данных на устройство BX = логический номер файла CX = число записываемых байтов DS:DX = адрес буфера AX = число фактически записанных байтов Возможен код ошибки 5 или 6
  Удаление файла DS:DX = адрес ASCIIZ-строки Возможен код ошибки 2 или 5
  Чтение атрибута файла AL = 0 DS:DX = адрес ASCIIZ-строки с именем файла CX = атрибут Возможен код ошибки 2 или 5
  Установка нового атрибута файла AL = 1 DS:DX = адрес ASCIIZ-строки с именем файла CX = атрибут Возможен код ошибки 2 или 5
  Чтение режима проверки Не используются AL = 0, если проверка выключена AL = 1, если проверка включена
  Переименование файла DS:DX = адрес ASCIIZ-строки со старым именем файла ES:DI = адрес ASCIIZ-строки с новым именем файла Возможен код ошибки 3, 5 или 17



Поделиться с друзьями:


Дата добавления: 2014-11-16; Просмотров: 1818; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.