Page 107 - 4875
P. 107

call dword ptr old_int_handler          ;виклик старого
                           обробника переривання
                             –                                       ;власні функції обробника
                             pop a                                   ;відновлення стану
                           регістрів
                             iret                                    ;завершення роботи
                           обробника
                             oldint_handler dd ?                     ;попередньо збережений
                           адрес
                                                                      старого обробника
                             end p

                                  Для  встановлення  нового  значення  вектора  переривання
                           використовуються наступні способи:
                                  1  Безпосередня робота з таблицею векторів переривань.
                                  2  Використання  функцій  DOS  для  встановлення  резидентної
                                     частини.
                                  Найбільш  швидкий  метод  –  це  робота  з  таблицею.  При  його
                           реалізації  обов’язково перед початком зміни таблиці заборонити будь
                           які  переривання  Cli  і  після  завершення  зміни  обов’язково  дозволити
                           роботу переривань Sti.

                                      code segment
                                      ОRG 100h
                                      ASSUME ds:code, cs:code
                                Start:
                                      JMP install
                                      Old_int_ip dw ?
                                      Old_int_es dw ?
                                tsr:
                                      -                              ;код програми обробника
                                      iret
                                install:
                                      -                              ;код інсталяції
                           резидентної частини
                                      mov dx, offset install
















                                                           106
   102   103   104   105   106   107   108   109   110   111   112