Основные регистры МП (л7):
- РОН (название, разрядность, обозначение, применение);
Перечислим регистры, относящиеся к группе регистров общего назначения (РОН). Так как эти регистры физически находятся в микропроцессоре внутри арифметико-логического устройства (АЛУ), то их еще называют регистрами АЛУ:
Сейчас регистры общего назначения могут быть 64-разрядными и имеют в наименовании приставку r:
Можно использовать младшие 32-разрядные части этих регистров (старшие части самостоятельно использовать нельзя). В свою очередь можно самостоятельно использовать младшие 16-разрядные части 32-разрядных регистров (старшие части регистров самостоятельно использовать нельзя.). В свою очередь можно самостоятельно использовать младшие 8-разрядные части 16-разрядных регистров (старшие части регистров самостоятельно использовать нельзя.). Так сделано для обеспечения работоспособности программ, написанных для младших 16-разрядных моделей микропроцессоров фирмы Intel, начиная с i8086.
- индексные регистры (название, разрядность, обозначение, применение); Следующие два регистра (они имеют еще название индексные) используются для поддержки так называемых цепочечных операций, то есть операций, производящих последовательную обработку цепочек элементов, каждый из которых может иметь длину 32 или16 бит (эти регистры могут использоваться только полностью, к частям регистра доступа нет, в отличии от первых четырех РОН). Могут использоваться программистом при написании программ.
- регистры указатели (название, разрядность, обозначение, применение); В программной модели микропроцессора существуют специальные регистры указатели, каждый из которых может иметь длину 32 или16 бит (эти регистры могут использоваться только полностью, к частям регистра доступа нет, в отличии от первых четырех РОН). Могут использоваться программистом при написании программ.
- сегментные регистры (название, разрядность, обозначение, применение); В программной модели микропроцессора имеется шесть сегментных регистров: cs, ss, ds, es, gs, fs. Для того чтобы указать на сегменты, к которым программа имеет доступ в конкретный момент времени, и предназначены сегментные регистры. В этих регистрах содержатся адреса памяти с которых начинаются соответствующие сегменты. Логика обработки машинной команды построена так, что при выборке команды, доступ к данным программы или к стеку неявно используются адреса во вполне определенных сегментных регистрах. Микропроцессор поддерживает следующие типы сегментов:
В настоящее время сегментные регистры могут быть 32-разрядные, имеют приставку е. Пользователь доступа к сегментным регистрам не имеет, а адреса распределяются ОС. - регистр флагов (название, разрядность, обозначение, применение); Регистр флагов eflags/flags постоянно содержит информацию о состоянии микропроцессора:
Используя этот регистр, можно получать информацию о результатах выполнения команд и влиять на состояние самого микропроцессора. Рассмотрим подробнее назначение и содержимое этого регистра: eflags/flags (flag register) — регистр флагов. Разрядность eflags/flags — 32/16 бит. Отдельные биты данного регистра имеют определенное функциональное назначение и называются флагами. Младшая часть этого регистра полностью аналогична регистру flags для i8086. На рис. 2 показано содержимое регистра eflags.
Рис. 2. Содержимое регистра eflags Исходя из особенностей использования, флаги регистра eflags/flags можно разделить на три группы:
- регистр указателя (счетчика) команд (название, разрядность, обозначение, применение); eip/ip (Instraction Pointer register) — регистр -указатель команд. 34. В каких режимах может работать процессор (реальный, защищенный, виртуальный)? Понятие защищенного режима работы. Перечислить сегментные регистры. Что хранится в сегментных регистрах в реальном режиме. А что в защищенном? Что представляет собой селектор. Назначение каждого разряда. Виды таблиц дескрипторов. Где находятся? Понятие колец защиты. Сколько уровней защиты имеется? (л8). Защищенный режим создан прежде всего для работы нескольких независимых программ. Для обеспечения совместной работы нескольких задач необходимо защитить их от взаимного влияния, взаимодействие задач должно регулироваться. Физический адрес формируется по принципам защищенного режима (отличны от принципов формирования адреса в реальном режиме работы!). В реальном режиме: для хранения адресов начала соответствующих сегментов используется 16-разрядные регистры CS, SS, DS, ES, FS, GS. Они используются при вычислении физических адресов путем суммирования базового (начала сегмента) адреса, находящегося в сегментном регистре, со смещением. Максимальный размер сегмента в реальном режиме 64 Кбайт (216). В защищенном режиме CPU в сегментные регистры: CS, DS, SS,E S, FS, GS загружается селектор Селектор представляет 16-разрядный указатель и имеет три поля: 15 3 2 1 0
Биты 0 и 1 - это поле RPL, которое определяет уровень привилегий запроса и используется в механизме защиты памяти. Установлено 4 уровня защиты или 4 уровня привилегий (кольца защиты)
PL=0 – самый высокий уровень привилегий назначен ядру ОС PL=1 – назначен системным сервисам PL=2 – расширение ОС PL=3 – самый низкий уровень привилегий назначен пользовательским программам. Бит 2 – Это поле TI. При TI=0 используется глобальная таблица дескрипторов GDT. При TI=1 используется локальная таблица дескрипторов LDT. Дескрипторы сегментов хранятся в виде таблиц массивов данных в ОП. Таблицы могут иметь размеры от 8 байт до 64 Кбайт. Имеется три вида дескрипторов: GDT – глобальная таблица дескрипторов LDT – локальная таблица дескрипторов IDT – таблица дескрипторов прерываний Таблица GDT содержит дескрипторы, которые могут использоваться системой при выполнении различных задач. Таблица LDT содержит дескрипторы сегментов, используемых при решении конкретной задачи. Количество создаваемых таблиц LDT определяется ОС и зависит от числа выполняемых задач. Каждая задача может иметь отдельную LDT, которая включает дескрипторы сегментов, используемых при ее решении. При совместном использовании сегментов таблицы LDT могут полностью или частично перекрывать друг друга. Таблица IDT обеспечивает выполнение процедур обслуживания исключений (прерываний). Общий формат дескриптора
Поле INDEX – служит индексом (смещением) для выбора одного из 8192 дескрипторов (213), содержащихся в таблицах GDT или LDT. На сумматор, вычисляющий физический адрес памяти в защищенном режиме, подается не содержимое сегментного регистра, как в случае реального режима, а базовый адрес из выбранного дескриптора, который суммируется с содержимым поля INDEX селектора (смещение).
|