![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 02.07.2011
Сообщений: 38
|
![]()
Доброго времени суток,
рассматриваю один пример из книги по смене режима процессора и перехода в другой сегмент, который бы работал в защищённом режиме. Есть всего один вопрос по команде дальнего перехода. Упрощённый код: Код:
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 05.10.2011
Сообщений: 368
|
![]()
после включения защищённого режима (моv cr0, eax) процессор перестанет транслировать адрес по формуле (seg shl 4) + offset, поэтому для того чтобы прыжок произошёл правильно, необходимо его вручную конвертировать в линейный.
а во втором случае, после выключения защищённого режима, при выполнении инструкции Код:
Не стоит будить спящего Бога! (с) Меланхолия Харухи Судзумии
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 02.07.2011
Сообщений: 38
|
![]()
Ну да. В принципе, если анализировать дескриптор GDT_flatCS для сегмента PM_seg, то у него база = 0, а лимит - 4 Гбайта. Т.е. 32-разрядный линейный адрес будет служить и как смещение. Или не совсем так?
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 02.07.2011
Сообщений: 38
|
![]()
Дошло.
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопрос по mySQL + Вопрос по RichEdit | HTL | Общие вопросы Delphi | 4 | 01.01.2010 20:22 |
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) | Albert2008 | Общие вопросы Delphi | 4 | 21.08.2008 15:33 |
вопрос по сокетам и общение как в ICQ.Сложный вопрос... | Руслантус | Общие вопросы C/C++ | 2 | 12.08.2008 21:10 |
Вопрос по с++ | JOFRIF | Помощь студентам | 2 | 02.05.2008 20:01 |