3-5
BASIC EXECUTION ENVIRONMENT
maximum linear address or segment offset is FFFFH (2
16
), and operand sizes are typically 8 bits
or 16 bits.
When using 32-bit addressing, a logical address (or far pointer) consists of a 16-bit segment
selector and a 32-bit offset; when using 16-bit addressing, it consists of a 16-bit segment selector
and a 16-bit offset.
Instruction prefixes allow temporary overrides of the default address and/or operand sizes from
within a program.
When operating in protected mode, the segment descriptor for the currently executing code
segment defines the default address and operand size. A segment descriptor is a system data
structure not normally visible to application code. Assembler directives allow the default
addressing and operand size to be chosen for a program. The assembler and other tools then set
up the segment descriptor for the code segment appropriately.
When operating in real-address mode, the default addressing and operand size is 16 bits. An
address-size override can be used in real-address mode to enable 32-bit addressing; however, the
maximum allowable 32-bit address is still 0000FFFFH (2
16
).
3.6.REGISTERS
The processor provides 16 registers for use in general system and application programing. As
shown in Figure 3-3, these registers can be grouped as follows:
General-purpose data registers. These eight registers are available for storing operands
and pointers.
Segment registers. These registers hold up to six segment selectors.
Status and control registers. These registers report and allow modification of the state of
the processor and of the program being executed.