Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Сервисы и другие векторы прерываний BIOS





 

При инициализации таблицы прерываний BIOS отвечает за корректное запол­нение части векторов, имеющих отношение к аппаратным средствам компьютера и сервисам BIOS. На некоторые из них могут быть просто установлены заглуш­ки: вектор ссылается на код обработчика, содержащего единственную инструк­цию возврата из прерывания — IRET. BIOS инициализирует векторы прерыва­ний различных назначений:

♦ внутренних прерываний процессора (исключений), которые могут возник­нуть в реальном режиме работы (об исключениях защищенного режима в основном заботится соответствующая операционная система);

♦ аппаратных прерываний, маскируемых и немаскируемых;

♦ вызовов функций ROM BIOS (16-битных сервисов);

♦ указателей на системные таблицы.

 

Внутренние прерывания:

♦ Int OOh — деление на 0;

♦ Int Olh — пошаговый режим;

♦ Int 03h — точка останова;

♦ Int 04h — переполнение;

♦ Int 06h — недопустимая команда 286+;

♦ Int 07h — вызов отсутствующего математического сопроцессора (Numeric Pro­cessor Unit, NPU).

♦ Int 02h — немаскируемое прерывание;

♦ Int 08h - таймер 8253/8254;

♦ Int 09h — клавиатура;

♦ Int OAh - IRQ2/9;

♦ Int OBh - IRQ3;

♦ Int OCh - IRQ4;

♦ Int ODh - IRQ5;

♦ Int QEh — IRQ6 (контроллер гибких дисков);

♦ Int OFh - IRQ7;

♦ Int 70h - CMOS-таймер;

♦ Int 71h — IRQ9 (перенаправлено на Int OAh);

♦ Int 72h - IRQ10;

♦ Int 73h - IRQ11;

♦ Int 74h — IRQ12 (контроллер мыши PS/2);

♦ Int 75h — IRQ13 (исключение сопроцессора);

♦ Int 76h — IRQ14 (контроллер жестких дисков);

♦ Int 77h - IRQ15.

Функции ROM BIOS (16-битные сервисы):

♦ Int 05h (F000:FF54h) - печать экрана;

♦ Int 10h — видеосервис (см. 10.6);

♦ Int llh — чтение списка оборудования (слово из BDA 0040:0010h), возвра­
щает в АХ:

 

• биты 15:14 — число обнаруженных LPT-портов (00 — 0,..., 11 — 3);

• бит 13 — резерв;

• бит 12 — обнаружен игровой адаптер;

• биты 11:9 — число обнаруженных СОМ-портов (000 — 0,..., 111 — 7);

• бит 8 — наличие контроллера DMA;

• биты 7:6 — число обнаруженных НГМД (00 — 1,..., 11 — 4);

• биты 5:4 — активный видеорежим (00 — резерв, 10 — 80-колоночный
цветной, 01 — 40-колоночный цветной, 11 — монохромный);

• биты 3:2 — размер ОЗУ на системной плате (теперь обычно 00);

• бит 1 — присутствие математического сопроцессора;

• бит 0 — присутствие дисководов;

♦ Int 12h — размер непрерывной памяти;

♦ Int 13h — дисковый сервис (блочный ввод-вывод, см. 9.11);

♦ Int 14h — обслуживание СОМ-портов (см. 16.1);

♦ Int 15h — АТ-функции (системный сервис, функции определяются значени­
ем АН/АХ):

 

• 00-03h — управление и обмен данными с кассетным магнитофоном (были
когда-то и такие «стримеры»!) на старых ПК;

• 4fh — перехват событий клавиатуры (см. 11.1);

• 53xxh — сервисы расширенного управления энергопотреблением (АРМ);

• 8300h — запуск таймера, устанавливающего флаг в заданной ячейке
(см. 4.6);

• 830 lh — сброс того же таймера;

• 84h — джойстик (см. 11.6);

• 86h — программируемая задержка (см. 4.6);

• 87h — перемещение блока расширенной памяти;

• 88h — получение размера расширенной памяти;

• 89h — переключение в режим V86;

• COh — получение системной конфигурации, при успешном выполне­нии (CF = 0, АН = 0) ES:BX указывает на таблицу данных конфигурации(табл. 5.3);

• 80-82h, 85h, 90h, 91h — функции многозадачных ОС (BIOS устанавливает заглушки);

 

♦ Int 16h — клавиатурный ввод-вывод (см. 11.1);

♦ Int 17h — обслуживание LPT-портов (см. 15.4);

♦ Int 18h — процедура восстановления при неудаче начальной загрузки (преж­
де - ROM-Basic);

♦ Int 19h — начальная загрузка;

♦ Int lAh — системное время, дата, будильник (см. 4.6) и 16-битные вызовы
сервисов PCI (см. 14.7);

♦ Int lBh — обработчик нажатия клавиш Ctrl+Break;

♦ Int ICh — процедура User Timer Interrupt, вызываемая обработчиком Int 08h
каждые 55 мс; BIOS устанавливает простую заглушку (IRET), но программы
могут перехватывать это прерывание; на время отработки процедуры все ап­
паратные прерывания запрещены
(кроме NMI);

♦ Int 33h — поддержка мыши;

♦ Int 4Ah — обработчик будильника пользователя, установленного функцией
Int lAh (6) BIOS (см. 4.6); прерывание вызывается асинхронно, так что при
возврате из процедуры все регистры и флаги должны быть в том же состоя­
нии, что и при входе; BIOS ставит заглушку (IRET);

♦ Int 67h — EMS-функции.

Указатели на таблицы:

♦ Int lDh — видеопараметры;

♦ Int lEh — параметры дискет;

♦ Int lFh — знакогенератор CGA;

♦ Int 41h — параметры HDD 0;

♦ Int 46h — параметры HDD 1;

♦ Int 43h — знакогенератор EGA.

Как видно из приведенных списков, большинство векторов BIOS накладывается на область векторов ОО-lFh, зарезервированную фирмой Intel под внутренние прерывания и исключения процессоров. Во времена 8086 из них использова­лось совсем малое количество, зарезервированной была объявлена вся указан­ная область. Тем не менее творцы IBM PC «влезли» в эту область, что ослож­нило жизнь системных программистов, работающих с более щедрыми на ис­ключения современными процессорами.

Таблица 5.3. Параметры системы

Смещение Длина, байт Поле_________________________________________________

   
   
   
   
   

Длина таблицы, в байтах

Модель: FF - PC, FE или FB - XT, FD - PCjr, FC - AT, FF -неизвестная

Подмодель: PC, XT, PCjr, AT = 00; AT = 01, XT-286 = 02

Ревизия BIOS

Свойства:

- бит 0 — резерв;

- бит 1=0- PC-type I/O channel;

- бит 2 = 1- Extended BIOS area allocated;

- бит 3 - поддержка функций ожидания Int 15h(83xx, 86h);

- бит 4 - вызов Int 15h (4Fh) обработчиком Int 09h;

- бит 5 — наличие RTC;

- бит 6 — наличие второго контроллера 8259А;

- бит 7 - использование жестким диском канала DMA#3

6_______ 4_____________ Резерв__________________________________________________

Date: 2015-05-23; view: 564; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию