Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Размер стека в защищенном режиме

47K
25 июня 2009 года
iXCept
7 / / 13.05.2009
Каков максимальный размер сегмента стека в защищенном режиме? И почему именно такой (если вам известно)? Заранее предупреждаю, ответы типа "4 Гига" и "64 Кб" неверны.
261
29 июня 2009 года
ahilles
1.5K / / 03.11.2005
Цитата: iXCept
Заранее предупреждаю, ответы типа "4 Гига" и "64 Кб" неверны.


почему неверны? Всё зависит от того чтобы поставишь в GDT и какой селектор загрузишь в регистр SS. максимальный размер сегмента стека 4 ГБ. НО ещё нельзя забывать об уровне страниц.

18K
29 июня 2009 года
logree
102 / / 27.09.2008
Кто задал вопрос и кто сказал что эти ответы не верны?
47K
29 июня 2009 года
iXCept
7 / / 13.05.2009
Так как стек движется в обратном порядке то размер: 0fffffh - (limit + 1). Если хотим максимальный, то в limit = 0. Получаем 0fffffh - 1. При установленных битах атрибутов G и B умножаем выражение на 4 Кб. Получаем 0ffffffffh - 1000h, что есть:

Правильный ответ: 4Gb - 4Kb!
261
30 июня 2009 года
ahilles
1.5K / / 03.11.2005
блин, какой ты умный. А если я в регистр SS загружу обычный селектор сегмента данных, такой же какой в регистре DS? Что тогда будет?
551
30 июня 2009 года
Pavia
357 / / 22.04.2004
Цитата: iXCept
Так как стек движется в обратном порядке то размер: 0fffffh - (limit + 1). Если хотим максимальный, то в limit = 0. Получаем 0fffffh - 1. При установленных битах атрибутов G и B умножаем выражение на 4 Кб. Получаем 0ffffffffh - 1000h, что есть:

Правильный ответ: 4Gb - 4Kb!



А вот и не верно.

Note that when scaling
is used (G flag is set), the lower 12 bits of a segment offset (address) are not checked
against the limit; for example, note that if the segment limit is 0, offsets 0 through
FFFH are still valid. из манов интел.

Так что 4ГБ.

349
30 июня 2009 года
Phantom-84
656 / / 27.10.2005
iXCept, сначала научись вопросы формулировать нормально, потом научись задавать вопросы, ответы на которые ты не в состоянии получить самостоятельно. А если хочешь радостью своего открытия поделиться с другими, то так и делай. То, о чем ты говришь, называется не сегментом стека, а растущим вниз сегментом.

То что сегменты с установленным флагом "РАСТУЩИЙ ВНИЗ" могут иметь размер от 0 до 0xFFFFF единиц в отличии от сегментов с размером от 1 до 0x100000 единиц, для которых этот флаг не установлен, написано в любом подробном описании по IA32. А происходит это из-за того, что в подобных сегментах лимит ограничивает сегмент снизу, а не сверху, и все корректные внутрисегментные смещения должны быть строго больше значения лимита.
14
30 июня 2009 года
Phodopus
3.3K / / 19.06.2008
Ну и еще не стоит забывать о 64-битных процессорах которые сам автор никак не отмел.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог