|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Проблема при переводе процессора в защищенный режим |
|
Проблема при переводе процессора в защищенный режим
|
Новый участник Сообщения: 35 |
Профиль | Отправить PM | Цитировать Возникает следующая проблема. Когда я подготавливаю дескриптор в таблице GDT для сегмента стека, то указываю, что этот сегмент расширяется вниз, то есть устанавливаю бит ED (Expand Down). Но, при таком значении этого бита, процессор отказывается переходить в защищенный режим. Если этот бит сбросить в 0, то все нормально. Почему так происходит? В моей книжке в тексте примера этот бит установлен, но на дискете к книге в исходнике этот бит сброшен, т.е. сегмент стека является просто сегментом данных. Ничего по этому поводу в книге не говорится. Может, кто нибудь знает, в чем дело. Подскажите, пожалуйста.
|
|
Отправлено: 21:17, 27-04-2006 |
Обратный инженер Сообщения: 644
|
Профиль | Отправить PM | Цитировать LeonidPr
Что-то немного непонятно -- чего ты хочешь добиться,какая твоя цель? Да,стек в принципе является сегментом данных,но у него есть одна характерная особенность -- он растёт в сторону младших адресов,и у меня подобное поведение ассоциируется как раз с расширением вверх. А если к тому же учесть,что эта особенность заложена в алгоритм команд работы со стеком,то можно предположить,что именно это разногласие и обуславливает капризы процессора. Что за книжка,какой пример??В общем,подробнее пожалуйста. |
------- Отправлено: 01:05, 28-04-2006 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 35
|
Профиль | Отправить PM | Цитировать Под расширением вниз я подразумеваю уменьшение esp командой push. в принципе, я обычный сегмент данных могу отвести под стек и установить sp=Limit-1. Но, не будет ли потом проблем? Именно для этого, ведь, в дескрипторе существует разряд ED. А, вот у Фроловых в "Библиотеке Системного Программиста" этот бит установлен. А книжка - В.Юров "Ассемблер". Книга мне понравилась, так как описывает и сам язык и его применение довольно подробно. Пример к главе 16. Он единственный в этой главе. В примере еще выводится сообщение на экран, но это не суть важно.
|
Отправлено: 17:00, 28-04-2006 | #3 |
Старожил Сообщения: 435
|
Профиль | Отправить PM | Цитировать У Юрова есть опечатки. Так что нужно доверять дискете.
|
------- Отправлено: 20:26, 28-04-2006 | #4 |
Обратный инженер Сообщения: 644
|
Профиль | Отправить 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 Можешь посмотреть тут небольшую таблицу. Согласен с BlackEric'ом насчёт опечаток,но в данном случае бит должен быть установлен,иначе мы наверно останемся без сегмента стека.Возможно,что ошибка кроется где-то в другом месте. |
|
------- Отправлено: 21:56, 28-04-2006 | #5 |
Обратный инженер Сообщения: 644
|
Профиль | Отправить PM | Цитировать LeonidPr
Про переход в защищённый режим можно почитать ещё тут . |
------- Отправлено: 23:33, 02-05-2006 | #6 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
проблема на 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 |
|