Создаем вирус и антивирус (Гульев) - страница 118

Изменяемые регистры: AX Flash AMIBIOS, подфункция 09h Отменить выбранный Flash

Вход:

AH=E0h

AL=09h

Выход:

AL=FAh

CF=0, если функция выполнена успешно

CF=1, если при выполнении функции возникли ошибки

Описание. Отменяет выбранный подфункцией 08h Flash.

Изменяемые регистры: AX Flash AMIBIOS, подфункция 0Ah Проверить доступ к адресам памяти

Вход:

AH=E0h

AL=0Ah

ES – сегмент памяти для верификации

BX – количество требуемых параграфов памяти

Выход:

AL=FAh

CF=0, если функция выполнена успешно

CF=1, если при выполнении функции возникли ошибки

Описание. Проверяет доступность указанной памяти. Подфункция необходима в ситуации, если некоторые участки памяти недоступны вследствие отключения кэш (80000-9FFFF может быть недоступна) и еще в некоторых случаях. Если в использовании данной подфункции нет необходимости, она возвращает значение «Успешное выполнение».

Изменяемые регистры: AX, в случае ошибки BX=0 Flash AMIBIOS, подфункция 0Bh Сохранить состояние внутреннего кэш

Вход:

AH=E0h

AL=0Bh

ES:DI – указатель на буфер для сохранения

Выход:

AL=FAh

CF=0, если функция выполнена успешно

CF=1, если при выполнении функции возникли ошибки

Описание. Сохраняет текущее состояние внутреннего кэш. Перед сохранением необходима проверка на доступность внутреннего кэш для конкретного железа. Буфер для сохранения должен быть не менее 16 байт. В случае отсутствия внутреннего кэш выдается ошибка.

Изменяемые регистры: AX Flash AMIBIOS, подфункция 0Ch Сохранить состояние внутреннего кэш

Вход:

AH=E0h

AL=0Ch

ES:DI – указатель на буфер для сохранения

Выход:

AL=FAh

CF=0, если функция выполнена успешно

CF=1, если при выполнении функции возникли ошибки

Описание. Восстанавливает состояние внутреннего кэш, сохраненное подфункцией 0Bh.

Примечание. В защищенном режиме вызывает ошибку.

Изменяемые регистры: AX Flash AMIBIOS, подфункция FFh Сгенерировать CPU Reset (рестарт процессора).

Вход:

AH=E0h

AL=FFh

Описание. Генерирует CPU Reset (рестарт процессора).

Приложение Г Функции DPMI (INT 31h)

DPMI, функция 0000h

Выделить один или несколько дескрипторов в таблице LDT

Вход:

AX=0000h

CX – количество дескрипторов, которые необходимо выделить

Выход:

CF=0, если функция выполнена успешно

AX – базовый селектор

CF=1, если при выполнении функции возникли ошибки

Описание. Выделяет один или несколько дескрипторов в таблице LDT. Созданные дескрипторы должны быть инициализированы создавшим их приложением.

Примечания.

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