Определение термина "прерывание", его классификация в зависимости от источника возникновения сигнала. Особенности проверки оборудования, префикс программного сегмента. Функция ввод-вывод через последовательный порт. Пользовательское прерывание по таймеру.
Аннотация к работе
В зависимости от источника возникновения сигнала, прерывания делятся на : асинхронные , или внешние (аппаратные) - события, которые исходят от внешних источников (например, периферийных устройств) и могут произойти в любой произвольный момент: сигнал от таймера, сетевой карты или дискового накопителя, нажатие клавиш клавиатуры, движение мыши. Факт возникновения в системе такого прерывания трактуется как запрос на прерывание (англ. Например : mov ax,4000H ;делимое mov bl,2 ;делитель - байт, поэтому частное - тоже байт (AL) div bl ;4000H/2 = 2000H, что не умещается в байте AL ;поэтому выполняется прерывание INT 00HINT 01H: Пошаговое прерывание . Если вы хотите использовать это прерывание для обработки событий, зависящих от времени, вы должны предусмотреть код, сообщающий системе, когда прерывание закончено. Резидентные popup-программы, которые обычно предусматривают "кнопку вызова", перехватывают INT 09H и проверяют на определенный ключ примерно так : push ax in al,60H ;читать ключ cmp al,POP_KEY ; это кнопка вызова? je do_pop ;да , активизировать popup ;нет , уйти на исходный обработчик pop ax jmp cs :[int9_vect ] ; переход на первоначальный обработчик do_pop : ;------следующий код необходим для отработки аппаратного прерывания in al,61H ;взять значение порта управления клавиатурой mov ah,al ;сохранить его or al,80h ; установить бит разрешения для клавиатуры out 61H,al ;и вывести его в управляющий порт xchg ah,al ;извлечь исходное значение порта out 61H,al ;и записать его обратно mov al,20H ;послать сигнал "конец прерывания" out 20H,al ; контроллеру прерываний 8259 ;------дальше - прочие проверки, и наконец - активизация POPUPINT 10H: видео сервис.