Table of Contents

Advertisement

Introduction
1-6
iAPX 86,88 Family Utilities
Because the low four bits of the 20-bit segment address are always zero, the segment
address can be represented with only 16 bits.
The segment address is kept in one of four 16-bit segment registers. Because there
are four segment registers, the 8086 can, at any moment, access 256K (4 x 64K) bytes
of memory. The full megabyte of memory is accessed by changing the values in the
segment registers. Figure 1-4 shows the 8086 addressing concept.
SEGMENT
REGISTER
OFFSET
~
12340H
+
8003H
.~
Segments
1A343H
EFFECTIVE 20·BIT ADDRESS
64K BYTES CAN BE
ADDRESSED BY
CHANGING THE
OFFSET ONLY
MEMORY
, . . . . . - - . - - - - - - - , FFFFFH
t-- -
-
-- -- -
-
-
-
-
-
-
64K BYTES
t-- -
-
-- -
-
-
-
-
-
-
-
~--.-------~OH
Figure 1-4. 8086 Addressing
639-4
Programs comprise pieces called segments, which are the fundamental units of
linkage and relocation. The basic divisions have functional purposes related to the
hardware configuration of memory. The portilons of programs that are to be kept in
ROM or PROM can be put in separate segments from the portions that will be kept
in RAM.
The 8086 Assembler allows the programmer to name the segments of the program
being developed. The PL/M-86 compiler may generate predefined names for
segments.
A segment is a contiguous area of memory that is defined at translation time
(assemble or compile). When defined, a segment does not necessarily have a fixed
address or size. A fixed address is assigned to a segment during the locate function.
The size can be changed by combining segments and by a control that specifies a
specific size. Some translations may produce absolute object information, with
absolute addresses and a specific segment size.

Advertisement

Table of Contents
loading

This manual is also suitable for:

Iapx 88

Table of Contents