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

Ваш аккаунт

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

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

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

Память в защищенном режиме

9.5K
18 февраля 2005 года
sky
6 / / 18.02.2005
Hi!
Народ, помогите плз. Нигде не могу найти инфу по распределению памяти в защищенном режиме.
Собственно, имеется в виду вот что: какие участки памяти в защищенном режиме нельзя использовать? Что это за участки (ПЗУ, видеопамять...)?
1.7K
18 февраля 2005 года
Envel
206 / / 29.11.2004
Цитата:
Originally posted by sky
Hi!
Народ, помогите плз. Нигде не могу найти инфу по распределению памяти в защищенном режиме.
Собственно, имеется в виду вот что: какие участки памяти в защищенном режиме нельзя использовать? Что это за участки (ПЗУ, видеопамять...)?


А вот это, дорогой друг, никто тебе сказать не может. Все зависит от твоей машинки. Карта памяти определяется с помощью функции 0xe820 прерывания 15h BIOS (в real mode!). Описание данной функции поможет найти google.com. Я сам где-то нарыл даже на русском, но сейчас в упор не помню и найти по первым ссылкам не могу. Есть еще несколько устаревших функций: 88h, 0e801h, но это уже не так актуально (для старых машин сгодится).
Прилагаю исходник на ассемблере для определения карты памяти. Карта устроена так:
Размер карты (4 байта)
Начало участка (8 байт)
Длина участка (8 байт)
Тип участка (4 байта) (1 - доступна для использования, 2 - недоступна, другие типы - смотри описание функции 0xe820 int 15h)
(последние три записи повторяются, пока не опишут всю память)

Карта строится по адресу es:MEMORY_MAP (нужно задать). Она работает даже на старых компьютерах.

9.5K
19 февраля 2005 года
sky
6 / / 18.02.2005
Большое спасибо за ответ!
Если я правильно понял, то занятые участки памяти одинаковы и в реальном и в защищенном режиме, т.е. в реальном режиме нужно получить карту памяти, а затем перейти в защищенный?
1.7K
19 февраля 2005 года
Envel
206 / / 29.11.2004
Цитата:
Originally posted by sky
Большое спасибо за ответ!
Если я правильно понял, то занятые участки памяти одинаковы и в реальном и в защищенном режиме, т.е. в реальном режиме нужно получить карту памяти, а затем перейти в защищенный?


В реальном режиме вы не можете обратиться к памяти за пределом 1-ого мегабайта, так что по сути это распределение для защищенного режима (что более общее, чем для реального).
Просто многие прерывания BIOS в защищенном не работают, да и карта памяти требуется как раз до перехода в защищенный режим.
Но вы поняли правильно:)

9.5K
19 февраля 2005 года
sky
6 / / 18.02.2005
Еще раз большое спасибо! :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог