|
Вопрос # 4 047/ вопрос открыт / |
|
Привет всем.
Я хотел бы узнать в каком режиме работает процессор(виртуальный подx86; реальный; защищенный) по отношению к чужому приложению (32 битному). Сразу же напрашивается ответ, что в защищенном, но в защищенном режиме насколько я знаю нельзя изменять регистры cs, ds,es,ss, а программа их интенсивно меняет, потому и спрашиваю.
Надеюсь ктонибудь знает как разобраться.
 |
Вопрос задал: SOA (статус: Посетитель)
Вопрос отправлен: 16 апреля 2010, 10:29
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, SOA!
при старте компьютера (или сброса процессора), он стартует в реальном режиме, а потом уже может быть переключен.
Windows переключает его в защищенный режим. Потому как только в этом режиме можно легко адресовать 4Гб памяти.
А то что "сегментные регистры" меняются, Вас тревожить не должно. У них в этом режиме другое предназначение. Они хранят селекторы. Используя селекторы, операционная система с процессором контролируют доступ к памяти (защита памяти) и организовывают виртуальные 4Гб каждому процессу. Чуть подробнее здесь http://avsdov.newmail.ru/modes/modes.htm
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 16 апреля 2010, 11:03
Оценка за ответ: 5
|
Мини-форум вопроса
Всего сообщений: 4; последнее сообщение — 17 апреля 2010, 17:08; участников в обсуждении: 2.
|
SOA (статус: Посетитель), 16 апреля 2010, 12:12 [#1]:
Понимаете Вадим у вас написано все верно, но это не решает моей проблемы по определению в каком режиме работает процессор, потому что я читал в книге что значения сегментных регистров в защищенном режиме изменять нельзя, а программы, например написанные на том же ассемблере легко могут работать как в реальном, так и в виртуальном режиме x86, и конечно могут работать и в защищенном, что я подозреваю можно также реализовать и на Delphi и на C++, что собственно и заводит меня в тупик, возможно помимо сегментных регистров, есть какие либо другие регистры, указывающие на то в каком режиме работает процессор по отношению к данной программе(задаче), вы не в курсе?
|
|
SOA (статус: Посетитель), 16 апреля 2010, 12:15 [#2]:
P.S. спасибо за ссылку почитаю 8)
|
|
SOA (статус: Посетитель), 17 апреля 2010, 17:08 [#4]:
Спасибо за ссылку(http://avsdov.newmail.ru/modes/modes.htm) Вадим, оттуда узнал что
Защищенный режим можно по установленному нулевому биту регистра CR0
Виртуальный режим можно определить по установленному 17 биту регистра флагов
Реальный определяется по сбросу нулевого в CR0 и 17 в EFLAGS.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|