Логический адрес состоит из 16-битового селектора сегмента и 32- битового смещения в этом сегменте. Логический адрес транслируется в линейный адрес сложением смещения и базового адреса сегмента. Базовый адрес берется из дескриптора сегмента - структуры данных в памяти, которая содержит информацию о размере и расположении данного сегмента в памяти, а также информацию для управления доступа. Дескриптор сегмента берется в одной из двух таблиц, таблицы глобальных дескрипторов (GDT) или таблицы локальных дескрипторов (LDT). Для всех программ в системе существует единая таблица GDT, а также по одной таблице LDT для каждой отдельной выполняемой в текущий момент программы. Если позволяет операционная система, то разные программы могут разделять одну и ту же LDT. Система может быть организована вообще без таблиц LDT; в этом случае все программы будут использовать GDT.
Каждый логический адрес связан со своим сегментом (даже если система отображает все сегменты в одно и том же линейное адресное пространство). Хотя программа может иметь тысячи сегментов, для немедленного использования доступны только шесть из них. Имеется шесть сегментов, селекторы которых загружены в процессор. Селектор сегмента содержит информацию, используемую для транслирования логического адреса в соответствующий линейный адрес.
Для каждого вида ссылки к памяти (пространству кода, пространству стека и пространствам данных) в процессоре существуют отдельные сегментные регистры. Они содержат селекторы текущих используемых сементов. Доступ к другим сегментам требует загрузки сегментного регистра с помощью разновидности команды MOV. Одновременно может быть доступно до четырех сегментов данных, что в сумме с остальными составляет шесть сегментных регистров.
При загрузке селектора сегмента также происходит загрузка в сегментный регистр базового адреса, границы сегмента и информации, управляющей доступом. После этого процессор уже не обращается к таблицам дескрипторов до тех пор, пока не произойдет загрузка другого селектора сегмента. Информация, хранимая процессором, позволяет ему выполнять адресные транслирования, не тратя на это лишних циклов шины. В системах, где несколько процессоров имеют доступ к одним и тем же таблицам дескрипторов, ответственность за перезагрузку сегментных регистров при модификации таблиц дескрипторов лежит на программном обеспечении системы. Если этого не сделать, то может произойти использование старого дескриптора сегмента, кешированного в сегментный регистр, уже после модификации его резидентной в памяти версии.
Селектор сегмента содержит 13-разрядный индекс для одной из дескрипторных таблиц. Индекс умножается на восемь (число байтов в дескрипторе сегмента) и складывается с 32-битовым базовым адресом дескрипторной таблицы. Базовый адрес берется из регистра таблицы глобальных дескрипторов (GDTR), либо из регистра таблицы локальных дескрипторов (LDTR). Эти регистры содержат линейный адрес начала дескрипторных таблиц. Бит в селекторе сегмента определяет, какая таблица должна быть использована, как показано на Рисунке 5-4.
Преобразованный адрес представляет собой линейный адрес, как показано на Рисунке 5-5. Если подкачка страниц не используется, то он одновременно является и физическим адресом. Если подкачка используется, то физический адрес получается на втором уровне преобразования адреса. Трансляция адресов описана в разделе 5.3.