Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Проблема при переводе процессора в защищенный режим

Ответить
Настройки темы
Проблема при переводе процессора в защищенный режим

Новый участник


Сообщения: 35
Благодарности: 0

Профиль | Отправить PM | Цитировать


Возникает следующая проблема. Когда я подготавливаю дескриптор в таблице GDT для сегмента стека, то указываю, что этот сегмент расширяется вниз, то есть устанавливаю бит ED (Expand Down). Но, при таком значении этого бита, процессор отказывается переходить в защищенный режим. Если этот бит сбросить в 0, то все нормально. Почему так происходит? В моей книжке в тексте примера этот бит установлен, но на дискете к книге в исходнике этот бит сброшен, т.е. сегмент стека является просто сегментом данных. Ничего по этому поводу в книге не говорится. Может, кто нибудь знает, в чем дело. Подскажите, пожалуйста.

Отправлено: 21:17, 27-04-2006

 

Аватара для DillerInc

Обратный инженер


Сообщения: 644
Благодарности: 47

Профиль | Отправить PM | Цитировать


LeonidPr
Что-то немного непонятно -- чего ты хочешь добиться,какая твоя цель?
Да,стек в принципе является сегментом данных,но у него есть одна характерная особенность -- он растёт в сторону младших адресов,и у меня подобное поведение ассоциируется как раз с расширением вверх.
А если к тому же учесть,что эта особенность заложена в алгоритм команд работы со стеком,то можно предположить,что именно это разногласие и обуславливает капризы процессора.
Что за книжка,какой пример??В общем,подробнее пожалуйста.

-------
То,что неясно,следует выяснить.То,что трудно творить,следует делать с великой настойчивостью. © Конфуций


Отправлено: 01:05, 28-04-2006 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 35
Благодарности: 0

Профиль | Отправить PM | Цитировать


Под расширением вниз я подразумеваю уменьшение esp командой push. в принципе, я обычный сегмент данных могу отвести под стек и установить sp=Limit-1. Но, не будет ли потом проблем? Именно для этого, ведь, в дескрипторе существует разряд ED. А, вот у Фроловых в "Библиотеке Системного Программиста" этот бит установлен. А книжка - В.Юров "Ассемблер". Книга мне понравилась, так как описывает и сам язык и его применение довольно подробно. Пример к главе 16. Он единственный в этой главе. В примере еще выводится сообщение на экран, но это не суть важно.

Отправлено: 17:00, 28-04-2006 | #3


Старожил


Сообщения: 433
Благодарности: 63

Профиль | Отправить PM | Цитировать


У Юрова есть опечатки. Так что нужно доверять дискете.

-------
photoua.narod.ru


Отправлено: 20:26, 28-04-2006 | #4


Аватара для DillerInc

Обратный инженер


Сообщения: 644
Благодарности: 47

Профиль | Отправить PM | Цитировать


LeonidPr
Есть у меня этот Юров "ASSEMBLER, 2-ое издание", но у меня глава 16 называется "Создание Windows-приложений на ассемблере",и никаких примеров перехода из реального режима процессора в защищённый там понятно нет.Но я скачивал дополнительные файлы к книге,и там действительно есть этот пример.
Насколько я понял,ты говоришь о поле типа дескриптора,т.е. о битах 41, 42 и 43.
Вот отрывок из кода с дискеты:
Код: Выделить весь код
;бит 2
code_n	equ	00000000b	;обычный сегмент кода
code_p	equ	00000100b	;подчиненный сегмент кода
data_	equ	00000000b	;для сегмента данных
stack_	equ	00000000b	;для сегмента стека <-- должно быть 00000100b
В случае с сегментами данных установленный 42-ой бит,или E (Expand Down),указывает на то,что это стек.
Можешь посмотреть тут небольшую таблицу.
Согласен с BlackEric'ом насчёт опечаток,но в данном случае бит должен быть установлен,иначе мы наверно останемся без сегмента стека.Возможно,что ошибка кроется где-то в другом месте.

-------
То,что неясно,следует выяснить.То,что трудно творить,следует делать с великой настойчивостью. © Конфуций


Отправлено: 21:56, 28-04-2006 | #5


Аватара для DillerInc

Обратный инженер


Сообщения: 644
Благодарности: 47

Профиль | Отправить PM | Цитировать


LeonidPr
Про переход в защищённый режим можно почитать ещё тут .

-------
То,что неясно,следует выяснить.То,что трудно творить,следует делать с великой настойчивостью. © Конфуций


Отправлено: 23:33, 02-05-2006 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Проблема при переводе процессора в защищенный режим

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
проблема на asus p5k/epu при reset энергосберегающий режим God-of-Chaos Материнские платы и память 5 01-07-2009 09:02
[решено] Проблема при установке видеодрайверов (монитор уходит в режим энерго сбережения) GreatEvil Непонятные проблемы с Железом 2 28-07-2008 21:16
Защищенный VCD Qen Видео и аудио: обработка и кодирование 4 04-04-2005 21:59
Защищенный доступ в интернет. Guest Общий по FreeBSD 7 25-08-2004 10:52




 
Переход