Типы прерываний и источники возникновения запросов. Принципы обработки прерываний и флаговая логика микропроцессоров, страница 4

Рис. 3.3. Вектор прерывания

Младшие 1024 байта ОЗУ занимает таблица векторов или дескрипторов прерываний, которая содержит адреса 256 прерываний (табл. 3.1).

BIOS (Basic Input/Output System) — базовая система ввода/вывода — служит  для  организации  обмена  информацией  процессора с внешней аппаратурой и является связующим звеном между операционной системой (ОС) и периферийными устройствами (ПУ). BIOS содержит набор программ обработки аппаратных прерываний и базирующиеся на их основе  обработчики  программных  прерываний. Территориально  BIOS размещается в ПЗУ или  во флэш-памяти на  материнской плате в виде отдельной БИС.

Прерывания  операционной системы (в данном случае DOS), поддерживающие  обмен с ПУ на более высоком уровне, опираются на прерывания BIOS. Некоторые из таких функций (прерывания int 021h DOS) приведены в прил. 4.

                                                                                        Т а б л и ц а  3.1   

Распределение векторов в таблице векторов прерываний

Диапазон номеров (кодов) прерываний

Виды прерываний

0…7

Внутренние прерывания, немаскируемое прерывание NMI, Int 5 — печать текущего экрана (BIOS)

8…0f

Внешние аппаратные прерывания с запросами через ведущий контроллер прерываний (IRQ0…IRQ7)

010…01f

Вызовы функций базовой системы ввода/вывода (BIOS), указатели расположения в памяти системной информации

040…05f

Прерывания BIOS

060…067

Пользовательские прерывания

069…06f

Обслуживание системных функций

070…077

Внешние аппаратные прерывания с запросами через ведомый контроллер прерываний (IRQ8…IRQ15)

078…0ff

Прерывания, обеспечивающие ряд функций операционной системы, BIOS, интерпретатора языка BASIC, а также зарезервированные для пользовательских функций

Использование программных прерываний  BIOS и DOS существенно облегчает программирование и наиболее предпочтительно в пользовательских программах. При проектировании программно-аппаратных комплексов на базе PC и при решении задач системного программирования необходимо уметь управлять процессами обмена, используя  систему прерываний и непосредственное обращение к портам  периферийных устройств. Поэтому в предлагаемых работах основное внимание уделяется изучению внутренних и внешних аппаратных  прерываний, а функции  BIOS  и  DOS используются по мере  необходимости в качестве инструментальных средств.

        3.3. Изучение принципов обработки внутренних прерываний

3.3.1. Цели работы

Целями работы являются приобретение знаний о типах внутренних прерываний и флаговой логики процессора, источников возникновения внутренних прерываний, формирование навыков использования механизма внутренних прерываний при решении практических задач (приемы перехвата прерываний и передачи управления соответствующим системным обработчикам).

 3.3.2. Программа работы

1. Проанализируйте содержимое стандартного обработчика прерывания по ошибке операции деления. Т.е. проверьте, как реагирует операционная система, на переполнение при выполнении команды деления. Результат работы программы покажите преподавателю.

2. Замените стандартный обработчик int 0 на собственный, используя  функции DOS  для  замены  вектора прерывания и функцию 9h прерывания int 021h (функция dos 9) для иллюстрации работы вашего обработчика. Рекомендуемый алгоритм приведен на рис. 3.4.

3. Преобразуйте  вашу программу так, чтобы не применять функции DOS для получения и установки вектора прерываний int 0.

4. Организуйте передачу управления обработчику BIOS после выполнения всех команд вашего прерывания, т.е. для выхода из Вашего обработчика используйте команду безусловного перехода по адресу системного обработчика. Перед завершением программы не забудьте восстановить вектор прерывания для обеспечения возможности повторного запуска программы.