Assembler - язык неограниченных возможностей



         

Интерфейс VCPI - часть 2


/p>

Точка входа VCPI, АХ = DE0Ch — Переключиться в режим V86 (для вызова из РМ)

Ввод: Перед передачей управления командой call в стек надо поместить регистры в следующем порядке (все значения — двойные слова): GS, FS, DS, ES, SS, ESP, 0, CS, EIP. Прерывания должны быть запрещены
Вывод: Сегментные регистры загружаются, значение ЕАХ не определено, прерывания запрещены

Остальные функции VCPI:

INT 67h AX = DE02h — Определить максимальный физический адрес

Ввод: АХ = 0DE02h
Вывод: АН = 0, если нет ошибок
EDX = физический адрес самой старшей 4-килобайтной страницы, которую можно выделить

INT 67h AX = DE03h — Определить число свободных страниц

Ввод: АХ = 0DE03h
Вывод: АН = 0, если нет ошибок
EDX = число свободных 4-килобайтных страниц для всех задач

INT 67h AX = DE04h — Выделить 4-килобайтную страницу (обязательно надо вызвать DE05h)

Ввод: АХ = 0DE04h
Вывод: АН = 0, если нет ошибок
EDX = физический адрес выделенной страницы

INT 67h AX = DE05h — Освободить 4-килобайтную страницу

Ввод: АХ = 0DE05h
EDX = физический адрес страницы
Вывод: АН = 0, если нет ошибок

INT 67h AX = DE06h — Определить физический адрес 4-килобайтной страницы в первом мегабайте

Ввод: АХ = 0DE06h
СХ = линейный адрес страницы, сдвинутый вправо на 12 бит
Вывод: АН = 0, если нет ошибок
EDX = физический адрес страницы

INT 67h AX = DE07h — Прочитать регистр CR0

Ввод: АХ = 0DE07h
Вывод: АН = 0, если нет ошибок
ЕВХ = содержимое регистра CR0

INT 67h АХ = DE08h — Прочитать регистры DR0 – DR7

Ввод: АХ = 0DE08h
ES:DI = буфер на 8 двойных слов
Вывод: АН = 0, если нет ошибок, в буфер не записываются DR4 и DR5

INT 67h AX = DE09h — Записать регистры DR0 – DR7

Ввод: АХ = 0DE09h
ES:DI = буфер на 8 двойных слов с новыми значениями для регистров
Вывод: АН = 0, если нет ошибок (DR4 и DR5 не записываются)
<


Содержание  Назад  Вперед