Cтраница 4
Процедура обработки прерывания lQh вначале сохраняет регистры процессора, а затем инициализирует регистр DS на адрес 0040п области данных дисплея ( см. далее) и регистр ES на сегментный адрес видеобуфера. После этого анализируется конкретная функция в регистре АН и производится косвенная передача управления нужной процедуре через таблицу внутрисегментных ( NEAR) указателей. [46]
Модуль обработки прерываний обслуживает прерывания верхнего уровня, как правило, связанные с обслуживанием файловой системы и операций логического уровня ввода / вывода. Обычно все прикладные программы вызывают для своих целей функции модуля обработки прерываний и через них получают доступ к прерываниям нижнего уровня. [47]
Организация обработки прерываний может быть реализована по различным схемам. Например, поступление события, требующего прерывания, запоминается до окончания обслуживания ранее поступившего прерывания; механизм прерывания позволяет выделять приоритеты событий при их одновременном появлении, но без прерывания ранее начатого обслуживания; в механизм прерывания введена возможность немедленной реакции на некоторую группу критических событий. [48]
![]() |
Состав операционной системы MS-DOS. [49] |
Модуль обработки прерываний реализует основные высокоуровневые услуги DOS, поэтому его и называют основным. [50]
Процедуры обработки прерываний могут содержать обычные внутренние процедуры. После вызова эти процедуры передают управление в точку вызова той процедуры обработки прерываний, в которой они объявлены. [51]
Процедуры обработки прерываний могут вызываться обычным образом прямо из внешнего блока программы или из другой процедуры. Однако следует помнить о том, что всегда нужно снимать блокировку прерываний на выходе из процедуры обработки, даже если эта процедура была вызвана не внешним прерыванием. [52]
Блок обработки прерываний СК производит обработку как внешних, так и внутренних запросов прерывания. К внутренним прерываниям относятся: ошибка обращения к каналу, прерывание по Т - и Р - биту слова состояния процессора. [53]
![]() |
Организация приема запросов на прерывания. [54] |
Модуль обработки прерываний DOS обслуживает в большинстве планируемые прерывания, в том числе и прерывания системы ввода-вывода. [55]
![]() |
Схема переме-щения информации при. [56] |
Время обработки прерывания прг / Вх / сохр / обр / восст / вых, где / вх - время переключения процессора на прерывающую программу ( складывается из времени завершения выполнения текущей команды, сохранения значения старого ССП и загрузки нового. Возврат из прерывания требует только восстановления старого ССП); / сохр, восст - время, необходимое прерывающей программе для сохранения и восстановления программно-доступных регистров; / обр - время работы собственно обрабатывающей программы; / вых - время выполнения команды возврата из прерывания. [57]
Программа обработки прерывания типа 16 ( обмен данными с клавиатурой) возвращает байт состояния регистровых клавиш, который сообщает о том, какие из этих клавиш были нажаты. [58]
Блок обработки прерываний СК производит обработку как внешних, так и внутренних запросов прерывания. К внутренним прерываниям относятся: ошибка обращения к каналу, прерывание по Т - и Р - биту слова состояния процессора. [59]