препод дал задание: перейти из реального режима в защишенный и обратно... я вашем сайте я нашел статьи по защ. режиму но там показываеться только как перейти из реального в защ. режим. а вот как перейти обратно??? может есть у кого исходник или информация по этому заданию... зарание спасибо..
подробней может кто нибуть объяснить.... я так думаю что одним сбросом бита не обойтись. может у кого есть исходник?
chooka Вообще-то Great рассмотрел переходы в обе стороны: http://www.wasm.ru/article.php?article=ia32int
l_inc между прочим да ) у меня там ест ьпереход и туда и обратно. тока там переход через сброс бита PE. могу дать код для перехода через аппаратный сброс
скинь пожалуйста исходник как переключиться через аппаратный сброс на ch00k@mail.ru или в теме оставь файл..... сдавать все равно этот исходник не буду, хоть посмотрю..... интересно...
в том то и дело что я незнал как написать переход из PM в RM, я сомнивался что это возможно только переключением одниго бита......
ну не только одного бита, нужно еще подготовить 16разрядный сегмент кода для будущего выполнения в нем реалмодного кода, подготовить новую IDTR для реального режима, сбросить бит и сделать far jmp кажется, ничего не забыл) реализацию можно найти у меня в статье
чтобы перейти из реального режима в защищенный и обратно порядок действий такой: инициализировать RM сегменты открываем адресную линию A20 запрет маскируемых прерываний запрет немаскируемых прерываний загружаем подготовленные GDTR и IDTR изменяет один бит регистра cr0 делаем прыжок в защишенный режим инициализировать PM сегменты разрешаем использование прерываний СДЕСЬ МОЖНО РАБОТАТЬ В ЗИЩИЩЕННЫМ РЕЖИМЕ запретить прерывания загрузить заранее подготовленную IDTR сделать прыжок инициализировать RM сегменты разрешить прерывания вот мне интересно правильно ли я понял порядок действий для переключения между режимами???....или еще нужно где вставить код какую пасять использовать(страничная, сегментная)..??? вот когда включаеш адресную линию A20 её нужно потом закрыть или оставить??
код для поддержки страничного преобразования ставится сразу после перехода в PM. когда планируешь возвращаться в RM для вызова внешних подпрограмм (биос или че еще) то лучше закрыть