опубликован 26-04-2001 21:39 MSK
Выражаюсь яснее, хотя куда уж яснее выразиться...Меня интересует объем расширенной оперативной (физической) памяти.
Небольшой ликбез.
Максимальный объем памяти по спецификации EMS не более 64Мб (int 47h, ax=4200h).
В спецификации XMS можно определить только объем свободной памяти XMS (функция ah=8 - до 64Мб, функция ah=88h - свыше 64Мб).
Объем расширенной физической памяти можно получить через CMOS (регистры 17h и 18h), но это верно для объема меньше 64Мб.
BIOS для определения размера (а также проверки) физической памяти, переводит процессор в защищенный режим для линейной 32 разрядной адресации памяти. Записывает некоторое значение (обычно это 0AA55h) в первое слово каждого мегабайта, может произвести некоторые нехитрые операции с этим словом, затем считывает и сверяет. Если верно, то мегабайт считается действительным... и т.д.
Кстати, фирма Microsoft в своей утилитке "mem.exe" выводит "?" при объеме более 64Мб, я думаю им бы мозгов хватило поюзать XMS/EMS, если это было бы возможно.
PS: Все равно спасибо, что обратил внимание на мой вопрос и ответил.