Иллюстрированный самоучитель по Assembler


Система прерываний - часть 4


09h -аппаратное прерывание от клавиатуры;

0Eh -аппаратное прерывание от гибкого диска;

10h - программное прерывание, программы BIOS управления видеосистемой;

13h - программное прерывание, программы BIOS управления дисками;

16h - программное прерывание, программы BIOS управления клавиатурой;

IDh -не вектор, адрес таблицы видеопараметров, используемой BIOS;

lEh -не вектор, адрес таблицы параметров дискеты, используемой BIOS;

21h - программное прерывание, диспетчер функций DOS;

22h - программное прерывание, адрес перехода при завершении процесса, используемый DOS;

23h -программное прерывание, обработчик прерываний по <Ctrl>/C, используемый DOS;

25h - программное прерывание, абсолютное чтение диска (функция DOS);

26h - программное прерывание, абсолютная запись на диск (функция DOS);

60h...66h - зарезервировано для программных прерываний пользователя;

68h...6Fh - программные прерывания, свободные векторы;

70h -аппаратное прерывание от часов реального времени (с питанием от аккумулятора);

76h -аппаратное прерывание от жесткого диска;

Как видно из таблицы, векторы прерываний можно условно разбить

на следующие группы:

векторы внутренних прерываний процессора (0lh, 02h и др.);

векторы аппаратных прерываний (08h...0Fh и 70h...77h);

программы BIOS обслуживания аппаратуры компьютера (10h, 13h, 16h и др.);

программы DOS (21h, 22h, 23h и др.);

адреса системных таблиц BIOS (IDh, lEh и др.).

Системные программы, адреса которых хранятся в векторах прерываний, в большинстве своем являются всего лишь диспетчерами, открывающими доступ к большим группам программ, реализующих системные функции. Так, видеодрайвер BIOS (вектор 10h) включает программы смены видеорежима, управления курсором, задания цветовой палитры, загрузки шрифтов и многие другие. Особенно характерен в этом отношении вектор 21h, через который осуществляется вызов практически всех функций DOS: ввода с клавиатуры и вывода на экран, обслуживания файлов, каталогов и дисков, управления памятью и процессами, службы времени и т.д. Для вызова требуемой функции надо не только выполнить команду int с соответствующим номером, но и указать системе в одном из регистров (для этой цели всегда используется регистр АН) номер вызываемой функции. Иногда для "многофункциональных" функций приходится указывать еще и номер подфункции (в регистре AL).

 




Начало  Назад  Вперед



Книжный магазин