Реальный режим работы МП
Если размеры кода и данных программы невелики, она может целиком исполняться в реальном режиме. Так, например, DOS использует реальный режим, как основной, и сама не пытается перевести процессор в защищённый режим, предоставляя это пользовательским программам. Ранние версии Microsoft Windows могли работать только в реальном режиме. Даже Windows 3.0, среди трёх режимов работы, предусматривала… Читать ещё >
Реальный режим работы МП (реферат, курсовая, диплом, контрольная)
Реальный режим (или режим реальных адресов) — это название было дано прежнему способу адресации памяти после появления процессора 80 286, поддерживающего защищённый режим. Но только с появлением процессора 80 386 можно говорить о защищённом режиме в современном понимании, так как в процессоре 80 286 нет страничной адресации памяти.
Описание: в реальном режиме при вычислении линейного адреса, по которому процессор собирается читать содержимое памяти или писать в неё, сегментная часть адреса умножается на 16 (или, что-то же самое, сдвигается влево на 4 бита) и суммируется со смещением (если процессору передаётся не полный адрес из двух 16-битных значений — сегмента и смещения, — а только 16-битное смещение, то сегмент берётся из одного из сегментных регистров). Таким образом, адреса 0400h:0001h и 0000h:4001h ссылаются на один и тот же физический адрес, так как 400hЧ16+1 = 0Ч16+4001h.
Такой способ вычисления физического адреса позволяет адресовать 1 Мб + 64 Кб? 16 байт памяти (диапазон адресов 0000h…10FFEFh). Однако в процессорах 8086/8088 всего 20 адресных линий, поэтому реально доступен только 1 мегабайт (диапазон адресов 0000h… FFFFFh), а при адресации выше (в диапазоне 10 0000h…10FFEFh) происходит «заворот» — старший единичный бит адреса игнорируется и происходит обращение к 64 килобайтам в начальных адресах (0000h…FFEFh).
Процессор 80 286 имеет 24-битную адресную шину (возможна адресация 224 = 16 Мб памяти), поэтому в них переполнения не происходит. Компьютеры IBM PC/AT построены на процессоре Intel 80 286, но, из соображений совместимости с IBM PC и IBM PC/XT, построенных на Intel 808x, в них был введён логический элемент (вентиль), управляющий работой 21-го адресного провода (A20). Этот логический элемент, получивший название «Gate A20», по умолчанию отключен, что соответствует режиму совместимости, но управляется через контроллер клавиатуры (микросхема Intel 8042).
Использование: После подачи сигнала сброса или включения питания процессор начинает работу в реальном режиме; в этом режиме начинается исполнение BIOS IBM PC-совместимого компьютера. В реальном режиме может быть выполнена инициализация части аппаратуры (например, контроллер ОЗУ чипсета), которая необходима для работы программ после переключения в защищённый режим.
Если размеры кода и данных программы невелики, она может целиком исполняться в реальном режиме. Так, например, DOS использует реальный режим, как основной, и сама не пытается перевести процессор в защищённый режим, предоставляя это пользовательским программам. Ранние версии Microsoft Windows могли работать только в реальном режиме. Даже Windows 3.0, среди трёх режимов работы, предусматривала запуск в реальном режиме и могла выполняться на 8086. Процессоры 80 286 и более поздние, работая в реальном режиме, в основном, сохраняют те же ограничения на размер адресного пространства, что и 8086. Для использования большего объёма памяти программам, разработанным для реального режима, необходимы специальные средства. На машинах с процессором 80 286 и выше, можно, например, использовать драйверы вроде HIMEM.SYS. Есть также средства, предоставляемые недокументированной командой LOADALL (что, однако, сопряжено с целым рядом трудностей). Начиная с 80 386 появилась опять же не документированная фирмой Intel возможность перевести процессор в режим, неофициально называемый «Unreal mode», позволяющий, хоть и с некоторыми ограничениями, использовать 32-битное физическое адресное пространство (4 Гбайт).
Несмотря на то, что Intel не предусмотрела возврат процессора 80 286 из защищённого в реальный режим, компьютер IBM PC/AT имеет такую возможность, благодаря аппаратным особенностям и BIOS. Так, в нём предусмотрена программная подача сигнала сброса на процессор. BIOS также может различать причины / режимы перезапуска, анализируя содержимое ячейки памяти 40h:72h и байта по адресу 0Fh в конфигурационной памяти (CMOS). Поэтому можно заставить BIOS не выполнять начальную загрузку, оставить содержимое ОЗУ тем же, что и до сброса, а управление передать по адресу, помещённому в ячейку 40h:67h. Таким образом программа может многократно переключаться между защищённым и реальным режимами, хотя этот способ требует сравнительно большого расхода времени на каждое переключение.
Возможность «нормального», без ухищрений, программного возврата в реальный режим была предусмотрена Intel только в процессорах 80 386 и выше. Однако в 80 386 большую ценность имеет другая новая возможность — Режим виртуального 8086 (V86, VM86). При этом программы получают возможность использовать как бы прежний способ адресации 8086, в то время как процессор находится в защищённом режиме, а линейный адрес, вычисленный по правилам 8086, подвергается страничной трансляции. Режим V86 позволил создавать виртуальные машины. Операционная система может ограничить доступ к той или иной области памяти (см. Защита памяти) для каждой виртуальной машины, выделять для них виртуальную память вместо реальной физической и контролировать обращения к портам ввода-вывода. Всё это используется для организации работы DOS внутри многозадачных систем вроде OS/2 и Microsoft Windows. При этом каждой виртуальной DOS-машине доступен только 1 мегабайт адресного пространства, но их может быть запущено одновременно большое количество.