Starting with the 80386 model, Intel microprocessors perform address translation in two different ways called real mode and protected mode . These are described in the next sections. Real mode exists mostly to maintain processor compatibility with older models and to allow the operating system to bootstrap (see Appendix A for a short description of real mode).
A logical address consists of two parts: a segment identifier and an offset that specifies the relative address within the segment. The segment identifier is a 16-bit field called the Segment Selector , while the offset is a 32-bit field.
To make it easy to retrieve segment selectors quickly, the processor
provides segmentation registers
whose only purpose is to hold Segment
Selectors; these registers are called
gs. Although there are
only six of them, a program can reuse the same segmentation register
for different purposes by saving its content in memory and then
restoring it later.
Three of the six segmentation registers have specific purposes:
The code segment register, which points to a segment containing program instructions
The stack segment register, which points to a segment containing the current program stack
The data segment register, which points to a segment containing static and external data
The remaining three segmentation registers are general purpose and may refer to arbitrary data segments.
cs register has another important ...