Page 32 - 4875
P. 32
Лекція 5
СИСТЕМНИЙ ТАЙМЕР
Крім годинника реального часу комп’ютер оснащений
пристроєм – системним таймером. Даний пристій приєднується до лінії
IRQ 8 запрошує переривання і формує переривання int 8h орієнтовно
18,2 раз за секунду. При ініціалізації BIOS обов’язково встановлює
свою програму обробник для переривання таймера, яка кожного разу
збільшує на одиницю поточне значення 4-ох байтової змінної, яка
знаходиться в області даних BIOS за адресою 0000:046ch (лічильник
тіків (коливань) таймера). Якщо такий лічильник в процесі роботи
переповнюється, тобто пройшло більше 24 год. з моменту запуску
таймера, то за адресою 0000:0470h запишеться „1”.
Крім того стандартний обробник переривань таймера здійснює
контроль за роботою двигунів FDD (якщо пройшло більше двох секунд
простою двигуни виключають). Час, що залишився до виключення
можна побачити в комірці 0000:0440h .
Останню дію, яку виконує стандартний обробник – це виклик
переривання int 1сh. Фактично після ініціалізації системи вектор цього
переривання вказує на команду IRET, тобто фактично нічого не
виконується. Частіше це переривання виконується власними
програмами користувача для виконання періодичних дій. Крім того,
оскільки int 1сh викликане обробником переривань int 08h, то до
скидання (reset) контролера переривання всі апаратні переривання
будуть заборонені.
Обробник переривання 1сh обов'язково повинен закінчуватися
командою IRET. Часто при реалізації власних програм немає потреби
ексклюзивного переривання системи (всі переривання заборонені),
тому власна програма обробник переривання int 08h повинна
підготувати (скинути) контролер переривань перед завершенням своєї
роботи.
mov al,20h
out 20h,al
31