Page 112 - 4875
P. 112

old_cs dw 0
                             install:
                               mov ah, 35h
                               mov al, intNumber                     ;отримати адресу
                           попереднього
                               int 21h                               ;вектора переривання
                           intNumber
                               mov [old_ip], bx                      ;зберегти молодше слово
                                                                     ;адреси в old_ip
                               mov [old_cs], es                      ;зберегти старше слово
                                                                     ;адреси в old_cs
                               mov ah, 25h
                               mov al, intNumber
                               mov dx, offset intMyFunc
                               int 21h                               ;встановити нову адресу
                           вектора

                               mov dx, offset install                ;завершити роботу
                           програми i залишити
                               int 27h                               ;резидентною частину
                                                програми
                                                                     ;по мiтку install
                               ends
                           end start

                                  Спрощенa структура резидентної програми на мові С-- подана
                           нижче:

                                  ?include ”DOS.H--”
                                  ?include ”TSR.H--”
                                  Ξ
                           word OldVectAddr[2]={};                    /*виділити місце для
                           старої адреси */
                           interrupt NewProg ()
                           {
                             $ pushf                                 /* ініціалізація виклику */
















                                                           111
   107   108   109   110   111   112   113   114   115   116   117