Программирование на Ассемблере для персональных компьютеров. Садовой Н.Н - 66 стр.

UptoLike

Составители: 

66
Адрес вектора прерывания с номером N вычисляется как N*4. В
младшем слове хранится значение IP, а в старшем CS.
Пример. Определить адрес прерывания 21h. Получим 21h * 4h
=84h. Просмотр содержимого четырёх байтов, начиная с 0084h в
сегменте 0000h
Показывает, что там храниться число
0000:0084 0DDE:048B,
где 0DDE – адрес сегмент, а 048B – адрес смещения подпрограммы
обработки прерывания с номером 21h.
Если написать свою подпрограмму обработки
прерывания и с помощью
функций, описанных ниже, записать её адрес (сегмент и смещение) в век-
тор прерывания, то при вызове данного прерывания его обработка будет
проходить по новой подпрограмме. Старый вектор прерывания, обычно,
сохраняется и перед завершением программы восстанавливается.
Каждая подпрограмма обработки прерывания, в отличие от обычно
подпрограммы, завершается командой
iret, которая похожа на команду ret,
но восстанавливает из стека кроме CS и IP ещё и регистр флагов.
7.2. Изменение вектора прерывания
MS-DOS предоставляет две функции 35h и 25h прерывания
21h для чтения и установки вектора прерывания.
Функция 35h
Выполняет чтение адреса подпрограммы обработки прерывания.
Вызов:
ah = 35h
al = номер прерывания
Возвращаемое значение:
        Адрес вектора прерывания с номером N вычисляется как N*4. В
        младшем слове хранится значение IP, а в старшем CS.

           Пример. Определить адрес прерывания 21h. Получим 21h * 4h
        =84h. Просмотр содержимого четырёх байтов, начиная с 0084h в
        сегменте 0000h

        Показывает, что там храниться число
        0000:0084 0DDE:048B,
   где 0DDE – адрес сегмент, а 048B – адрес смещения подпрограммы
обработки прерывания с номером 21h.

   Если написать свою подпрограмму обработки прерывания и с помощью
функций, описанных ниже, записать её адрес (сегмент и смещение) в век-
тор прерывания, то при вызове данного прерывания его обработка будет
проходить по новой подпрограмме. Старый вектор прерывания, обычно,
сохраняется и перед завершением программы восстанавливается.

   Каждая подпрограмма обработки прерывания, в отличие от обычно
подпрограммы, завершается командой iret, которая похожа на команду ret,
но восстанавливает из стека кроме CS и IP ещё и регистр флагов.

                     7.2. Изменение вектора прерывания

           MS-DOS предоставляет две функции 35h и 25h прерывания
        21h для чтения и установки вектора прерывания.

   Функция 35h
   Выполняет чтение адреса подпрограммы обработки прерывания.
• Вызов:
        ah = 35h
        al = номер прерывания
• Возвращаемое значение:
                                                                    66