Соль в том, что по умолчанию сохраняется в регистре DS (регистр данных, то есть es:[ebx] писать на надо)
Чтобы решить эту проблему, память компьютера условно поделена на так называемые сегменты. Сегментом называется область памяти, которая начинается на границе параграфа, то есть с любого адреса, кратного 16 (четыре младших бита равны нулю).
Таким образом, если мы знаем значение сегмента, то легко подсчитать физический адрес в памяти, умножив это значение на 16: если сегмент = 64h, то физический адрес = 64h • 10h = 640h.
Теперь нужно задать смещение (offset) – количество байт от начала заданного сегмента до требуемой ячейки. Итак, абсолютный адрес в памяти вычисляется как сумма номера сегмента, умноженного на 16, и смещения. Сегменты и смещения записываются в командах ассемблера следующим образом:
сегмент:[смещение]
где
• сегмент – это один из сегментных регистров (CS, DS, ES, FS, GS или SS), в который предварительно занесён номер сегмента;
• смещение – это непосредственное значение смещения или регистр общего назначения, в котором хранится значение смещения.
Вопрос 15. Защищенный режим работы процессора. Таблицы дескрипторов
Защищенный режим – смысл – произошло увеличение памяти в 16 раз. Был придуман дескриптор, который за каждой программой закреплялось определенное количество памяти.
Процессор 80286 так же является 16 разрядным, однако в отличие от последнего может работать в новом режиме – защищенном. Обеспечивает аппаратную поддержку многозадачных операционных систем. Эта поддержка активно используется всеми мультизадачными ОС и оболочками, разработанными для компьютеров ИБМ ПЦ. Адресная шина увеличена до 24 разрядов. 2 в 24 степени = 16 МБ.
Следующие модели процессоров фирмы ИНТЕЛ i80386, i80486, i80586 (Pentium) были 32-х разрядными. Адресное пространство – 2 в 32 степени = 4 ГБ. В них реализована концепция страничной виртуальной памяти, возможной только для защищенного режима. Механизм этой памяти позволяет разместить часть оперативной памяти на диске, при этом размер виртуальной памяти, предоставляемой программой, ограничивается свободным пространством на диске. Новый метод адресации памяти (защищенный режим) позволил изолировать адресные пространства отдельных задач друг от друга. При этом прикладная программа, работающая среди ОС, использующей защищенный режим, не может случайно или намеренно разрушить целостность самой операционной системы. Программа может записывать данные только в те области памяти, которые выделены ей операционной системой. Это повышает надежность работы мультизадачных и мультипользовательских операционных систем.
Достоинства режима:
Возможность адресации за пределами первого мегабайта.
Реализован механизм, начиная с ИНТЕЛ 80386, страничной виртуальной памяти.
Аппаратная поддержка мультизадачности.
Адресация в защищенном режиме в микропроцессорах ИНТЕЛ 80286.
Дескриптор сегмента — служебная структура в памяти, которая определяет сегмент.
Дескриптор содержит физический адрес начала сегмента в памяти (базовый адрес), его размер, а также другую информацию. В 24 битах. Ага. Базовый адрес какой-то. Размещается в 24 битах. Размер сегмента указывается в 16 битах, и может принимать любые значения, меньшие или равные 64КБ. Размер сегмента может быть меньше или равным 64 КБ. В реальном – ЖОСТКО 64 КБ. В этом состоит фундаментальное отличие защищенного режима от реального. И сейчас зарисуем какую-то мега схему.
Do'stlaringiz bilan baham: |