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
   27   28   29   30   31   32   33   34   35   36   37