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

Ваш аккаунт

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

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

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

Что если выйти за предел объема ОП?

4.2K
26 октября 2003 года
UnseriousSam
15 / / 26.10.2003
Вобщем задача такая.... Работаем в защищенном режиме. Есть сегмент размером 4Га. Начинаем считать каждый байт этого сегмента поочереди с самого начал. Объем ОП 256 мегов. Что будет, когда я выйду за этот объем?
424
26 октября 2003 года
(C)dragon
307 / / 04.12.2002
Цитата:
Originally posted by UnseriousSam
Вобщем задача такая.... Работаем в защищенном режиме. Есть сегмент размером 4Га. Начинаем считать каждый байт этого сегмента поочереди с самого начал. Объем ОП 256 мегов. Что будет, когда я выйду за этот объем?



Комп просто перезагрузиться. Хотя если подробнее, на процессор посылается сигнал #RESET, его можно обрабатывать. Например из-за его обработки BIOS'ом при повторной перезагрузке память не тестируется. Правда, как его обрабатывать, нигде не видел.

4.2K
26 октября 2003 года
UnseriousSam
15 / / 26.10.2003
А вобще вот попробовал, не перезагружается, но выдает всякий мусор. Пишу туда одно значение, читаю совсем другое. Хотя, мне это и надо было :)
А ты может посоветуешь элегантный способ определить доступный объем озу?
424
27 октября 2003 года
(C)dragon
307 / / 04.12.2002
Цитата:
Originally posted by UnseriousSam
А вобще вот попробовал, не перезагружается, но выдает всякий мусор. Пишу туда одно значение, читаю совсем другое. Хотя, мне это и надо было :)
А ты может посоветуешь элегантный способ определить доступный объем озу?



Наверное ты попал в память какого-нибудь контроллера, которая на адресное пространство процессора отмаппирована. А объём ОЗУ можно определить твоим способом - записываешь туда какое-нибудь значение, а потом читаешь и сравниваешь. Или через функцию 0e801. Вот описание:

int 15h fn e801h

Входные параметры:
ax = e801h.
Выходные параметры:
ax - размер расширенной памяти в килобайтах до 16Mb;
bx - размер расширенной памяти в блоках по 64к свыше 16Мб;
cx - размер сконфигурированный расширенной памяти в килобайтах до 16Mb;
dx - размер сконфигурированной расширенной памяти в блоках по 64к свыше 16Мб.

Но она на старых биосах не работает, или неправильно показывает. А бывает, что ax и bx - 0, тогда надо из cx и dx размер памяти определять.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог