"П.Нортон "Программно-аппаратная организация компьютера IBM PC"" - читать интересную книгу автора

различных областей памяти с последующей проверкой результатов.
Непродолжительные эксперименты показывают, что при большинстве методов
чтения, как через DEBUG, так и с помощью средств языка Паскаль,
результатом всегда оказывается байт со всеми единичными битами; что
соответствует шестнадцатиричному значению FF или CHR$(255).
Такой результат никого не должен удивлять - ведь при чтении
несуществующей памяти наиболее вероятно получить либо все нули, либо все
единицы. По какой-то причине, которая мне до сих пор не понятна,
интерпретатор Бейсика всегда возвращает значение CHR$(233). Результаты не
совсем однозначны, но в большинстве случаев Бейсик возвращает именно это
странное значение, CHR$(233), при чтении неподключенной памяти.
Такое свойство можно использовать для проверки того, какая часть
адресного пространства активна. Листинг 3.1. показывает простую программу
на Бейсике, которая считывает по нескольку байт из каждого килобайта
памяти и сравнивает их со значением CHR$(233). Если Вы запустите эту
программу на своем компьютере, то она покажет какой объем памяти к нему
подключен. Рисунок 3.4 показывает результат выполнения этой программы на
IBM/PC, который я использовал при написании этой книги. Посмотрим о чем
они говорят.
Во-первых, отметим, что были обнаружены три блока памяти - то есть,
именно столько, сколько должно быть подключено к IBM/PC. Первый блок
начинается с адреса 0 или самого начала памяти. Это обычная, оперативная
память компьютера. В данном конкретном компьютере первый блок имеет размер
576Кбайт. Сюда входят 64К в системном блоке и еще 512К в блоке расширения.
Второй блок активной памяти начинается с адреса B000. Это память,
используемая адаптером монохромного дисплея. Поэтому можно сделать вывод,
что данный компьютер работает с монохромным дисплеем, а не с цветным
графическим адаптером. Заметим, что наша исследовательская программа
считает, что эта память занимает 32К, в то время как в действительности
монохромный адаптер включает включает всего 4Кбайта. Лишние 28К
обнаруженные программой, можно, вероятно, отнести на счет побочных
эффектов, связанных с работой схем, которые поддерживают реальные 4К
памяти. Выполнение той же самой программы в системе с цветным графическим
монитором также обнаруживают 32К памяти, хотя реально используется всего
16К.
После памяти адаптера дисплея программа обнаруживает ПЗУ, занимающее
верхние адреса памяти. В этом последнем блоке программа обнаруживает ровно
столько байт, сколько в нем действительно имеется.


Программа 3-1: Найти и отобразить активную память Потерпите -
выполнение этой программы занимает 65 сек (Адреса начала сегментов
приведены в шестнадцатиричном виде)

Активная память начинается с 0
заканчивается 8FFF 576К байт
(589824 байта)
Активная память начинается с B000
заканчивается B7FF 32К байт
(32768 байта)