Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / защищённый режим в досе / 14 сообщений из 14, страница 1 из 1
16.05.2008, 15:07
    #35317405
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защищённый режим в досе
АЙ!!! ПОМОГОИТЕ :((
Не могу понять что не так.... Дело в том, что при попытке перейти в защищённый режим в досе (а точнее при попытке изменить значение регистра cr0 (включить нулевой бит) ) комп просто перегружается... Вроде вполне нормальные действия :(

Код: plaintext
1.
2.
3.
4.
5.
set_PE proc
	mov eax, cr0
	or al,  1 
	mov cr0, eax
	ret
set_PE endp

вырубает на строке mov cr0, eax

Что может быть не так? В литературе, которую я читал, про это ничего не говориться...

ПОМОГИТЕ ПОЖАЛУЙСТА :)
...
Рейтинг: 0 / 0
16.05.2008, 15:30
    #35317494
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защищённый режим в досе
Програмёрв досеВ DOS-е ли? или в DOS-сессии в Windows?
...
Рейтинг: 0 / 0
16.05.2008, 15:31
    #35317498
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защищённый режим в досе
какую-то странную литературу Вы читали..
защищённый режим не в DOS'е а в микропроцессоре :) и при работе в защищённом режиме микропроцессор использует определённые структуры данных, которые должны быть созданы и правильно настроены + сам микропроцессор должен быть настроен на использование этих структур.


--
„Истина — это вовсе не то, что можно убедительно доказать, это то, что
делает всё проще и понятнее“ — Антуан де Сент-Экзюпери
...
Рейтинг: 0 / 0
16.05.2008, 18:44
    #35318159
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защищённый режим в досе
Это чистый дос (с загрузочного диска гружу).
а струтуры вроде создал... Там таблицы все создал, если надо, могу выложить полный код :)
...
Рейтинг: 0 / 0
16.05.2008, 20:30
    #35318285
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защищённый режим в досе
Ёшзащищённый режим не в DOS'е а в микропроцессоре
)) Ну это уже немного смешно. :) Я хоть и новичёк, но не дурак всё-таки :)
Я имел ввиду, что делаю я это всё из под доса...
...
Рейтинг: 0 / 0
16.05.2008, 20:38
    #35318292
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защищённый режим в досе
Привет, Програмёр!
Ты пишешь:

ПрограмёрП> Это чистый дос (с загрузочного диска гружу).
П> а струтуры вроде создал... Там таблицы все создал,
П> если надо, могу выложить полный код :)разгребать таблицы дескрипторов никто не будет.
забудь.

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
16.05.2008, 20:53
    #35318306
Lelikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защищённый режим в досе
ПрограмёрАЙ!!! ПОМОГОИТЕ :((
Не могу понять что не так.... Дело в том, что при попытке перейти в защищённый режим в досе (а точнее при попытке изменить значение регистра cr0 (включить нулевой бит) ) комп просто перегружается... Вроде вполне нормальные действия :(

Код: plaintext
1.
2.
3.
4.
5.
set_PE proc
	mov eax, cr0
	or al,  1 
	mov cr0, eax
	ret
set_PE endp

вырубает на строке mov cr0, eax

Что может быть не так? В литературе, которую я читал, про это ничего не говориться...

ПОМОГИТЕ ПОЖАЛУЙСТА :)

Найдите готовый пример.
...
Рейтинг: 0 / 0
16.05.2008, 22:33
    #35318386
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защищённый режим в досе
LelikkНайдите готовый пример.
А это идея :)... Я чёто сам об этом не подумал :) (просто у меня вдруг появилась мысль, что возможно у меня всё правильно написано, просто я чего-то мог не дописать...)
...
Рейтинг: 0 / 0
17.05.2008, 01:56
    #35318514
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защищённый режим в досе
Програмёр пишет:

> Это чистый дос (с загрузочного диска гружу).

Даже чистый DOS может работать в защищенном режиме под каким-нибудь QEMM.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
17.05.2008, 05:26
    #35318543
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защищённый режим в досе
MasterZiv
Програмёр пишет:

> Это чистый дос (с загрузочного диска гружу).

Даже чистый DOS может работать в защищенном режиме под каким-нибудь QEMM.
Posted via ActualForum NNTP Server 1.4
)) мой работает в реальном (флаг PE (вроде так он зовётся, тот что за P/R режимы отвечает) в cr0 выключен).
А я скачал исходник с другого сайта - он нормально работает )) Кстати, я решил поекспериментировать в таблицах дескрипторов и выставил всем сегментам тип DATA (установил 0 для 3-го бита 6-го байта), так вот после этого всё заработало нормально... Наверное я что-то не так как надо делаю, когда стараюсь работать с кодовыми сегментами :)
...
Рейтинг: 0 / 0
18.05.2008, 23:30
    #35319656
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защищённый режим в досе
)) ура!!! Наконец-то разобрался ))) У меня просто была создана процедура CLEAR_PE (выключить флаг PE). Так вот, когда я её убрал (вернее заменил её вызов на её код) - всё заработало как надо :). Как я понял, то проблема в том, что при выключении данного влага меняется метод адресации, и потому в стэке сохранён адрес возврата действительный для защищённого режима, и команда ret в конце процедуры старается достать из стэка и перейти по этому адресу, но в реальном режиме он совсем неправильный получается

И ещё вопрос (немного смешной, но просто страшно експерименты ставить, а то ещё спалю чёто в компе ):
Можно ли в защищённом режиме использовать команды call и ret так же как и в реальном, или же есть какие-то специальные команды для записи/считования адресов возврата в этом режиме?
Заранее благодарен.
...
Рейтинг: 0 / 0
18.05.2008, 23:44
    #35319668
Lelikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защищённый режим в досе
Програмёр)) ура!!! Наконец-то разобрался ))) У меня просто была создана процедура CLEAR_PE (выключить флаг PE). Так вот, когда я её убрал (вернее заменил её вызов на её код) - всё заработало как надо :). Как я понял, то проблема в том, что при выключении данного влага меняется метод адресации, и потому в стэке сохранён адрес возврата действительный для защищённого режима, и команда ret в конце процедуры старается достать из стэка и перейти по этому адресу, но в реальном режиме он совсем неправильный получается

И ещё вопрос (немного смешной, но просто страшно експерименты ставить, а то ещё спалю чёто в компе ):
Можно ли в защищённом режиме использовать команды call и ret так же как и в реальном, или же есть какие-то специальные команды для записи/считования адресов возврата в этом режиме?
Заранее благодарен.

теже самые.
И еще: после смены режима делайте jmp (хоть на след. команду), только учтите разрядности сегментов - вроде бы это Intel рекомендует это для очистки очереди команд процессора.
Подробнее было у Зубкова написано.
...
Рейтинг: 0 / 0
19.05.2008, 00:29
    #35319688
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защищённый режим в досе
Спасибо!!! )) Теперь по-моему всё прояснилось с адресами в защищённом режиме :)
...
Рейтинг: 0 / 0
19.05.2008, 02:00
    #35319734
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
защищённый режим в досе
Програмёр пишет:

> Можно ли в защищённом режиме использовать команды call и ret так же как
> и в реальном, или же есть какие-то специальные команды для
> записи/считования адресов возврата в этом режиме?
>

Конечно же можно.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / защищённый режим в досе / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]