Организация ЭВМ и систем: Курс лекций (Позиционные системы счисления. Процессоры семейства IA-32. Лазерные принтеры), страница 11

Более детально. Каждый сегмент определяется с помощью соответствующего дескриптора сегмента (segment descriptor). Дескриптор сегмента представляет собой 64-битную структуру данных, которая содержит базовый адрес (base address) и границу сегмента (segment limit), его тип, уровень привилегий и другие сведения.

В памяти имеются таблицы дескрипторов двух типов: глобальная таблица дескрипторов (Global Descriptor Table, GDT) и локальные таблицы дескрипторов (Local Descriptor Table, LDT). Каждая программа может имееть свою собственную локальную таблицу дескрипторов, а единственная глобальная используется всеми программами. Как правило, локальная таблица дескрипторов описывает локальные сегменты каждой программы (её код, локальные данные, стек и так далее), а глобальная таблица дескрипторов описывает системные сегменты, в том числе саму операционную систему. Глобальная таблица дескрипторов существует всегда, когда используется защищённый режим. Локальные таблицы могут отсутствовать. Тогда вся работа осуществляется через глобальную таблицу дескрипторов.

4.1.4. Страничная организация памяти

Страничная организация памяти призвана решить проблему нехватки оперативной памяти. Основная идея состоит в том, что участки оперативной памяти, не используемые в данный момент, можно сохранить на диске, а на их место загрузить те, которые необходимы для работы.

Для реализации данной идеи сегменты разбиваются на блоки размером 4 Кбайт, называемые страницами (page). Страница, к которой определённое время не было обращений, при нехватке оперативной памяти вытесняется (swap) на диск. Если же процессор пытается обратиться к странице памяти, которая в настоящий момент вытеснена, происходит ошибка отсутствия страницы (page fault), которая вызывает соответственное прерывание. Обработкой этого прерывания занимается диспетчер виртуальной памяти (virtual memory manager) операционной системы, который находит на диске нужную страницу и загружает её в свободный участок оперативной памяти.

4.2.  Регистры процессора

4.2.1. Программные регистры

Процессоры семейства IA-32 имеют следующие программные регистры:

общего назначения;

сегментные;

указателя команд;

флагов.

Регистры общего назначения: EAX, EBX, ECX, EDX, EBP, ESP, ESI, EDI — являются 32-разрядными и используются, в основном, для выполнения арифметических и логических действий и пересылки данных.

К младшей половине каждого регистра общего назначения можно обращаться непосредственно. Название такого 16-разрядного регистра получается путём отбрасывания буквы «E» в названии соответственного 32-разрядного регистра, которая во всех названиях регистров означает «расширенный» (extended). Кроме того, регистры E.X, где точка заменяет одну из букв «A», «B», «C» или «D», позволяют непосредственно обращаться к 8-разрядным частям младшей 16-половины. Правила образования названий показаны на следующей схеме:

E.X, 32 бита

.X, 16 бит

.H, 8 бит

.L, 8 бит

16-разрядные части регистров общего назначения имеют то же самое назначение, что и соответственные им 32-разрядные, поэтому в дальнейшем они отдельно рассматриваться не будут.

Регистры BP, SP, SI и DI используются, как правило, только в программах, использующих режим реальной адресации.

Особенности использования регистров общего назначения следующие.

Регистр AX называется аккумулятором, а регистр EAX — расширенным аккумулятором. Эти регистры, равно как AH и AL, обычно связаны с выполнением арифметических команд. Содержимое регистра EAX (AX) используется при выполнении команд умножения и деления.

Регистр ECX используется процессором в качестве счётчика цикла.

Регистр ESP называется расширенным указателем стека (extended stack pointer). С его помощью происходит обращение к данным, хранящимся в стеке. Данный регистр обычно не используется для других целей.