Память ПК, остающаяся за вычетом первого мегабайта (т.е. за вычетом базовой памяти), называется дополнительной [Extended Memory). Эта память доступна только в специальном, так называемом защищенном, режиме работы микропроцессоров 80286/80386/80486. Поскольку защищенный режим не поддерживается в MS-DOS, его не использует и подавляющее большинство прикладных программ, работающих под управлением этой операционной системы. Таким образом, владелец современного компьютера IBM AT, оснащенного памятью, скажем, в 8 Мбайта, работая с MS — DOS — программами, часто либо вообще не использует дополнительные 7 Мбайт, либо размещает в них электронный диск или буферную кэш—память для дисков. В версии Турбо Паскаля 7.0 (точнее, в пакете Borland Pascal with Objects 7.0) введена поддержка защищенного режима микропроцессоров 80286/80386/80486, в котором используется дополнительная память (см. главы 8...10).

Помимо базовой, отображаемой и дополнительной памяти, в IBM AT существует еще так называемая верхняя память (не путайте с верхним блоком памяти!). Как известно, 20—разрядный адрес на IBM AT в реальном режиме и на компьютерах IBM PC/XT образуется путем сложения двух 16-разрядных слов — сегмента и смещения. Перед сложением сегмент смещается на 4 разряда влево (умножается на 16), что и обеспечивает 20-разрядный результат сложения — адрес конкретного байта. Формальное сложение сегмента и смещения может привести к переполнению 20-разрядной адресной сетки. Действительно, если, например, сегмент Seg = $FFFF, а смещение 0/s = $0010, то сложение $FFFF*16+$O010 дает значение $100000, для представления которого требуется уже 21 разряд.

Поскольку в IBM PC/XT применяется 20—разрядная шина, переполнение результата не может использоваться и «лишний» 21—и разряд просто теряется, т.е. на таких ПК адресация с сегментом Seg = $FFFF и смещением Ofs > $OOOF эквивалентна адресации с сегментом Seg = $0000 и смещением Ofs = 0/s—$0010. В адресной шине IBM AT имеется 21—и разряд, но его использование обычно запрещено. Однако в таких компьютерах предусмотрена возможность программного управления 21—м разрядом. Если этот разряд разблокировать, программе, работающей в реальном режиме процессора, станут доступны еще почти 64 Кбайта (без 16 байт). Эта часть памяти и называется верхней (High Memory Area}. MS-DOS версии 5.0 и более поздних, а также некоторые совместимые с ней операционные системы других фирм (например, DR—DOS фирмы Digital Research версии 4.0 и позже) могут размещать в верхней памяти свои резидентные части, тем самым освобождая драгоценную стандартную память для программ пользователя.

Итак, существуют 4 вида оперативной памяти:

• базовая — с адресам от $00000 до $FFFFF;

• верхняя — с адресами от $100000 до $1OFFEF;

• дополнительная ~ с адресами от $100000 до $FFFFFFFF;

220 = i 048 576 = 1 Мбайт; 80286 оснащен 24-разрядной шиной и адресует 224 = 16777216 = 16 Мбайт; 32-разряднс1Я шина 80386 и 80486 адресует 232 = 4 294 967 296 = 4 Гбайт.