Продвижение сайта стоимость самая доступная.
Лучшие книги интернета
Материалы предоставлены только для просмотра. Любое использование материалов в коммерческих целях запрещено

41Робер Журден



    новлен (обычно прерывание может использовать стек вызывающей
    программы). Другая неприятность может заключаться в том, что при
    завершении программы по Ctrl-Break вектор прерывания не будет
    восстановлен, если только Вы не предусмотрите, чтобы программа
    реакции на Ctrl-Break выполняла эту процедуру [3.2.8].
    Низкий уровень.
    Описанные выше функции MS DOS просто получают или изменяют
    пару слов в младших ячейках памяти. Смещение вектора может быть
    вычислено простым умножением номера вектора на 4. Например, чтобы
    получить адрес прерывания 16H в ES:BX:
    ;-получение адреса прерывания 16H
    SUB AX,AX ;устанавливаем ES на начало памяти
    MOV ES,AX ;
    MOV DI,16H ;номер прерывания в DI
    SHL DI,1 ;умножаем на 2
    SHL DI,1 ;умножаем на 2
    MOV BX,ES:[DI] ;берем младший байт в BX
    MOV AX,ES:[DI]+2 ;берем старший байт в ES
    MOV ES,AX ;
    Не рекомендуется прямо устанавливать вектор прерываний, обходя
    функцию DOS. В частности в многозадачной среде операционная сис-
    тема может поддерживать несколько таблиц векторов прерываний и
    реальный физический адрес таблицы может быть известен только DOS.
    1.2.4 Дополнение к существующему прерыванию.
    Хотя и не часто, но иногда бывает полезно добавить код к су-
    ществующему прерыванию. В качестве примера рассмотрим программы,
    которые преобразуют одно нажатие клавиши в длинные определяемые

Предыдущая страница    41    Следующая страница




46661449