Туплю че-то
Для переключения между защищенным и реальным режимом нужно выполнить следующую последовательность телодвижений :
1 Запрещаем прерывания
2 Выставляем флаг PE - и опаньки - мы в protected mode
Теперь чтобы вернуться взад , в реальность :
3 Вертаем 0 в PE
4 Разрешаем прерывания
У меня затык происходит сразу после 3-го шага - я подозреваю,что этого из-за того, что в кодовый сегмент CS надо вернуть реальное значение,
которое там было перед установкой защищенного режима :
main:
call disable_interrupts
call set_PE
call clear_PE # вот после этой команды все валится
call enable_interrupts
ret
disable_interrupts:
cli
ret
enable_interrupts:
sti
ret
set_PE:
mov %cr0,%eax
orl $1,%eax
mov %eax,%cr0
ret
clear_PE:
mov %cr0,%eax
and $0xFE,%al
mov %eax,%cr0
ret
Ответ на:
комментарий
от asgard
Ответ на:
ссс
от int_0dh
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от I3rain
Ответ на:
комментарий
от kto_tama
Ответ на:
ссс
от int_0dh
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от kto_tama
Ответ на:
комментарий
от xnix
Ответ на:
комментарий
от kto_tama
Ответ на:
комментарий
от xnix
Ответ на:
комментарий
от Mr_Nobody
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум защищенный режим + keyboard (2001)
- Форум защищенный режим + keyboard (2001)
- Форум загрузчик на as86 и защищенный режим (2005)
- Форум защищенность (2001)
- Форум Защищенный планшет (2016)
- Форум Защищённые диски (2010)
- Форум ЗАЩИЩЕННАЯ лвс. (2024)
- Форум защищенная наследовательность (2003)
- Форум защищенный apache (2004)
- Форум Защищенные телефоны (2015)