Rambler's
Top100

Реальный режим микропроцессоров Intel

Автор: lonesome TSH/Digital Daemons
Дата: .01.2003
Раздел: Разработка ОС

Реальный режим - атавизм современных микропроцессоров Intel, от которого разработчики не избавляются вот уже около двадцати лет. Он существует по причине наличия программного обеспечения,предназначенного для работы в этом режиме. Этот режим был единственным в котором работали процессоры 8086 и 80186, но уже в 80286 был введен защищенный режим, который был доработан в 80386

Для доступа к оперативной памяти в реальном режиме используется сегментная адресация с использованием сегментных регистров CS, DS, ES, SS и появившихся позже FS и GS. Размер этих регистров в 8086 и 80186 составляет два байта. При этом любое обращение к памяти использует какой-нибудь сегментный регистр и физический адрес (т.е. номер ячейки памяти) определяется таким образом:
сегментный_регистр*16+указанный_адрес
Например команда:
mov [0x1234], al
поместит содержимое регистра al в следующую ячейку памяти:
DS*16+0x1234

Обычно команды работающие со стеком используют SS как сегментный регистр по умолчанию, выборка кода для последующего исполнения процессором производится по адресу CS:IP (т.е. CS*16+IP), остальные работающие с памятью команды обычно используют DS.
Любой сегмент может быть переопределен при помощи префиксов переопределения сегмента, т.е:
es mov [0x1234], al
приведет к тому, что содержимое al запишется по адресу:
ES*16+0x1234

Максимально возможный адрес памяти в реальном режиме составляет 10FFEF (1114095 байт), которые получается при использовании FFFF в качестве сегмента и FFFF в качестве адреса.

Rambler's Top100