Переключить процессор в защищённый режим
Регистры на входе: AX 0DE0Ch ESI Линейный адрес массива значений для системных регистров, массив должен располагаться в первом мегабайте памяти. Регистры на выходе: Загружаются регистры GDTR, IDTR, LDTR, TR. В стеке, на который указывают регистры SS:ESP, необходимо отвести по крайней мере 16 байт для возможности обработки прерываний.
Содержимое регистров EAX, ESI, DS, ES, FS, GS после выполнения функции будет потеряно.
Перед вызовом функции прерывания должны быть запрещены. После выполнения переключения в защищённый режим прерывания также запрещены.
Приведём формат области для загрузки системных регистров перед переходом в защищённый режим:
Таблица 10. Формат буфера для загрузки регистров и перехода в защищённый режим средствами VCPI.
Смещение | Размер и назначение |
00h | DWORD, значение для регистра CR3. |
04h | DWORD, линейный адрес в пределах первого мегабайта для загрузки регистра GDTR. |
08h | DWORD, линейный адрес в пределах первого мегабайта для загрузки регистра IDTR. |
0Ch | WORD, значение для регистра LDTR. |
0Eh | WORD, значение для регистра TR. |
10h | PWORD, значение адреса CS:EIP точки входа в защищённый режим. |