CodeNet / Платформы / Другие платформы / DOS / Прерывания DOS и BIOS
Функции BIOS -
Зто аппаратно генерируемое прерывание (IRQ 0) вызывается по каждому тику часов реального времени PC. Часы тикают каждые 55мс, или около 18.2 раз в секунду. Код ROM-BIOS для этого прерывания обновляет значение часов на 0:046 сек. этот код также выключает двигатели гибких дисков по истечении примерно двух секунд без операций ввода/вывода.
Если вы хотите использовать это прерывание для обработки событий, зависящих от времени, вы должны предусмотреть код, сообщающий системе, когда прерывание закончено. Магическая последовательность такова:
mov al,20H ;послать сигнал конец-прерывания
out 20H,al ; контроллеру прерываний 8259
большинство программ используют для этого ROM-BIOS. например, вначале программа пользователя сохраняет вектор ROM-BIOS в переменной с именем cs:[saved_int8]. затем по каждому прерыванию INT 08H выполняется следующий код:
pushf ;имитировать INT
call dword ptr cs:[saved_int8] ;выполнить нормальную обработку
cmp cs:my_var,test_value ;теперь сделать свои черные дела
... и т.д. ...
iret ;возврат в прерванную прикладную программу "переднего плана"
Оставить комментарий
Комментарии




