PersCom — Компьютерная Энциклопедия Компьютерная Энциклопедия

Ввод-вывод

Девятое.Реальный режим работы микропроцессора

Для тех пользователей, которые работали с микропроцессорами i8086 или i8088, нет необходимости пояснять особенности этого режима. Относительно недавно это был единственный режим, в котором функционировала популярная операционная система MS-DOS. Для нее был разработан большой объем программного обеспечения. Понимая все это и не желая терять рынок, фирма Intel во всех модернизациях своего микропроцессора поддерживает этот режим. В нашей книге при написании программ мы, до сего момента, также подразумевали реальный режим. Вот некоторые его характеристики:

  • пространство оперативной памяти делится на сегменты по 64 Кбайт. Сегменты в памяти могут перекрываться;
  • страничное преобразование адреса запрещено, то есть физический адрес равен линейному и формируется как сумма двух составляющих (см. урок 2):
    • 16-разрядного эффективного адреса, который, в свою очередь, является суммой трех составляющих: базы, смещения и индекса;
    • 20-разрядного результата сдвига содержимого конкретного сегментного регистра на 4 разряда влево;
  • максимальное значение физического адреса равно 0ff fffh, то есть 1 Мбайт, но, фактически, в реальном режиме микропроцессора адресуется на 64 Кбайт больше, что следует из следующего вычисления:
    ffff0 — максимальное значение сегментной части адреса, сдвинутое на 4 раз- ряда влево;
    +
    0ffff — максимальное значение смещения;
    10ffef = 1 114 096 байт — максимальный физический адрес в реальном режиме.

Этот пример говорит о том, что в модели микропроцессоров, начиная с i286, при определенных обстоятельствах возможна адресация оперативной памяти за пределами первого мегабайта. Это обстоятельство даже использовалось последними версиями MS-DOS для размещения служебных программ в этом дополнительном сегменте памяти. Формирование значений адреса сразу за первым мегабайтом возможно и в микропроцессоре i8088/86. В нем при появлении физического адреса большего 0fffffh, например 1 000 054h, микропроцессор отбрасывает 21-й единичный бит. Происходит так называемое «заворачивание» адреса, поэтому сформированный физический адрес на шине адреса будет равен 00054h. Для того чтобы обеспечить полную эмуляцию данной особенности микропроцессора i8088/86, в моделях микропроцессоров, начиная с i80286, была предусмотрена возможность блокировки адресной линии А20 (управление тем самым 21-м битом адреса). Для обеспечения доступа к адресам оперативной памяти, лежащим за пределами первого мегабайта, необходимо специальным образом открывать эту адресную линию;

  • в реальном режиме схема распределения оперативной памяти — фиксированная. Перечислим расположение некоторых из системных областей, которые потребуются нам в дальнейшем:
    • в диапазоне адресов 00000h-003ffh (первый мегабайт оперативной памяти) находится таблица векторов прерываний (ТВП). Она содержит 256 векторов прерываний размером 4 байта (указателей на программы обработки прерываний);
    • в диапазоне адресов 00400h-006ffh сразу за таблицей векторов прерываний располагается область памяти, содержащая жестко структурированные данные, обеспечивающие работу BIOS и MS-DOS;
    • с адреса 0b8000h располагается область видеопамяти, в которой формируется изображение, которое мы видим на экране.