КОМПЬЮТЕРНАЯ ВИРУСОЛОГИЯ

ҐҐ©ҐҐҐ©ҐҐ©ҐҐҐҐҐҐҐҐҐҐ©ҐҐҐҐҐҐҐҐҐҐҐҐҐҐ©ҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐђ
‹1A‹fun‹—‹ сервис ‹ REAL TIME ‹ Ввод-вывод для времени ‹
‹ ‹ ‹ ‹ BIOS ‹CLOCK SERVICES‹ ‹
?њњ™њњњ™њњ™њњњњњњњњњњ™њњњњњњњњњњњњњњ™њњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњ±

Эта сервис предоставляет доступ к системным часам. PC BIOS
работает со «счетчиком тиков» — числом 55-мс интервалов, прошедших с
момента включения или сброса PC. BIOS PC/AT предоставляет также доступ к
значениям часов реального времени, которые постоянно обновляются
независимо от работы процессора и хранятся в CMOS-памяти компьютера AT.

ҐҐ©ҐҐҐ©ҐҐ©ҐҐҐҐҐҐҐҐҐҐ©ҐҐҐҐҐҐҐҐҐҐҐҐҐҐ©ҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐђ
‹1B‹ — ‹—‹Указатель ‹ KEYBOARD ‹ Прерывание от нажатия клавиши ‹
‹ ‹ ‹ ‹ ‹ BREAK ‹ Control-Break ‹
?њњ™њњњ™њњ™њњњњњњњњњњ™њњњњњњњњњњњњњњ™њњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњ±

Этот вектор (0:006c) берется, когда BIOS распознает нажатие
клавиши Ctrl-Break. INT 1bh первоначально указывает на IRET, но DOS
устанавливает его на локальную программу, которая взводит внутренний
флаг DOS. DOS время от времени проверяет этот флаг и действует в
соответствии с действующим режимом обработки прерываний. (см прил.5
функции 33h и INT 23h, используемые для обработки Ctrl-Break в
программе).

ҐҐ©ҐҐҐ©ҐҐ©ҐҐҐҐҐҐҐҐҐҐ©ҐҐҐҐҐҐҐҐҐҐҐҐҐҐ©ҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐђ
‹1C‹ — ‹—‹Программно‹CLOCK TICK ‹Пользовательское прерывание ‹
‹ ‹ ‹ ‹аппаратное‹TIMER TICKS — ‹по таймеру ‹
‹ ‹ ‹ ‹прерывание‹ ‹ ‹
?њњ™њњњ™њњ™њњњњњњњњњњ™њњњњњњњњњњњњњњ™њњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњ±

Этот вектор (0:0070) BIOS берет по каждому тику аппаратных часов
(каждые 55 миллисекунд; приблизительно 18.2 раз в секунду).
Первоначально он указывает на IRET, но может быть изменен
пользовательской программой, чтобы адресовать фоновую программу
пользователя, базирующуюся на таймере.

ҐҐ©ҐҐҐ©ҐҐ©ҐҐҐҐҐҐҐҐҐҐ©ҐҐҐҐҐҐҐҐҐҐҐҐҐҐ©ҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐђ
‹1D‹ — ‹—‹ указатель‹6845 VIDEO ‹ Указатель видеопараметров ‹
‹ ‹ ‹ ‹ BIOS ‹INIT TABLES ‹ ‹
?њњ™њњњ™њњ™њњњњњњњњњњ™њњњњњњњњњњњњњњ™њњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњ±

Этот вектор (0:0074) указывает на совокупность видео параметров,
используемых прерыванием INT 10h для установки регистров
видеоконтроллера и некоторых констант BIOS при инициализации режима
видео. Можно создать RAM-резидентную версию этой таблицы и
модифицировать параметры, чтобы изменить работу некоторых экранных
режимов. Например, таким способом команда DOS «Mode» сдвигает экран
влево или вправо.
ҐҐ©ҐҐҐ©ҐҐ©ҐҐҐҐҐҐҐҐҐҐ©ҐҐҐҐҐҐҐҐҐҐҐҐҐҐ©ҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐђ
‹1E‹ — ‹—‹ Указатель‹DISKETTE PARAM‹Указатель параметров дискеты ‹
‹ ‹ ‹ ‹ BIOS ‹(BASE TABLE) ‹ ‹
?њњ™њњњ™њњ™њњњњњњњњњњ™њњњњњњњњњњњњњњ™њњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњ±

Этот вектор (0:0078) указывает на таблицу параметров дискеты,
которую прерывание 13h использует для различных операций с дискетами.

ҐҐ©ҐҐҐ©ҐҐ©ҐҐҐҐҐҐҐҐҐҐ©ҐҐҐҐҐҐҐҐҐҐҐҐҐҐ©ҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐђ
‹20‹ — ‹—‹ сервис ‹PROGRAM ‹ Завершить программу ‹
‹ ‹ ‹ ‹ MS DOS ‹TERMINATION ‹ ‹
?њњ™њњњ™њњ™њњњњњњњњњњ™њњњњњњњњњњњњњњ™њњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњ±

Это прерывание используется для выхода из программы и возврата
управления родительскому процессу (обычно COMMAND.COM). Оно
восстанавливает значения управляющих векторов INT 22h INT 23h INT 24h
и сбрасывает все файловые буфера. Регистр CS должен содержать значение
PSP завершающегося процесса. Программы COM-формата обычно выполняются
при CS=PSP, И, следовательно, могут выдавать INT 20h в любой момент.

ҐҐ©ҐҐҐ©ҐҐ©ҐҐҐҐҐҐҐҐҐҐ©ҐҐҐҐҐҐҐҐҐҐҐҐҐҐ©ҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐђ
‹21‹fun‹ ‹ сервис ‹ DOS ‹ Функции MS DOS ‹
‹ ‹ ‹ ‹ MS DOS ‹ SERVICE ‹ ‹
?њњ™њњњ™њњ™њњњњњњњњњњ™њњњњњњњњњњњњњњ™њњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњ±

Это прерывание служит главным входом большинства функций DOS.
Подробнее см. прил.5.

ҐҐ©ҐҐҐ©ҐҐ©ҐҐҐҐҐҐҐҐҐҐ©ҐҐҐҐҐҐҐҐҐҐҐҐҐҐ©ҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐђ
‹22‹ — ‹—‹ Указатель‹ TERMINATE ‹Адрес завершения ‹
‹ ‹ ‹ ‹ MS DOS ‹ ADDRESS ‹ ‹
?њњ™њњњ™њњ™њњњњњњњњњњ™њњњњњњњњњњњњњњ™њњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњ±

Адрес в этом векторе (0000:0088) представляет собой место, куда
будет передано управление, когда текущая программа завершится
выполнением функции 20h (традиционный выход в DOS), 21-00h,
21-4Ch(EXIT), 27h (TSR: Завершиться, но остаться резидентным) или 21-31h
(KEEP). Адрес в этом векторе копируется в поле PSP Terminate Address
функциями 26h (создать PSP) и 4bh (EXEC). Подробнее см. прил.5.

ҐҐ©ҐҐҐ©ҐҐ©ҐҐҐҐҐҐҐҐҐҐ©ҐҐҐҐҐҐҐҐҐҐҐҐҐҐ©ҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐђ
‹23‹ — ‹—‹Указатель ‹ CONTROL «C» ‹ Адрес выхода по Ctrl-Break ‹
‹ ‹ ‹ ‹ MS DOS ‹ EXIT ADDRESS ‹ ‹
?њњ™њњњ™њњ™њњњњњњњњњњ™њњњњњњњњњњњњњњ™њњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњ±
Адрес в этом векторе (0000:008c) — это адрес, по которому
передается управление, когда DOS распознает, что пользователь нажал
Ctrl-Break. Адрес по вектору INT 23h копируется в поле PSP Ctrl-Break
Address функциями DOS 26h (создать PSP) и 4ch (EXEC). Исходное значение
адреса обработчика Ctrl-Break восстанавливается из PSP при завершении
программы. Таким образом, по завершении порожденного процесса будет
восстановлен адрес обработчика Ctrl-Break из родительского процесса.
DOS вызывает INT 23h, когда распознает, что нажата комбинация
Ctrl-Break. Реакция на нажатие Ctrl-Break может быть проверена или
установлен посредством функции 33h (см. прил.5).

ҐҐ©ҐҐҐ©ҐҐ©ҐҐҐҐҐҐҐҐҐҐ©ҐҐҐҐҐҐҐҐҐҐҐҐҐҐ©ҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐҐђ
‹24‹ — ‹—‹Указатель ‹ FATAL ERROR ‹Обработчик критических ошибок ‹
‹ ‹ ‹ ‹ MS DOS ‹HANDLER ADDRES‹ ‹
?њњ™њњњ™њњ™њњњњњњњњњњ™њњњњњњњњњњњњњњ™њњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњњ±
Этот вектор (0000:0090) хранит адрес, по которому передается
управление, когда драйвер устройства DOS обнаруживает критическую
ошибку. Адрес по этому вектору копируется в PSP функицями 26h (Создать

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128