Sf)
86
Object
i\4odule
Formats
Version
4.rrJ
INTRODUC'f ION
Here
are
the
object
record
formats
that
define
the
object
lanquaqe
for
the
8686
microprocessor.
The
8086
object
lanquaqe
is
the
output
of
all
lanquaqe
translators
with
the
8086
as
the
tarqet
processor.
'fhe
8086
-
object
lanquaqe
is
input
and
output
for
object
languaqe
processors
such
as
linkers,
locaters,
librarians,
and
debuqgers.
The
8086
object
module
formats
permit
specification
of
relocatable
memory
imaqes
that
may
be
linked
to
one
another.
Capabilities
are
provided
that
allow
efficient
use
of
the
memory
mapping
facilities
of
the
8086
microprocessor.
This
section
defines
certain
terms
fundamental
to
S08~
R&L.
The
terms
are
ordered
not
alphabetically,
but
so
you
can
read
forward
without
forward
references.
DEFINITION
of-TERMS
OMF
-
acronym
for
Object
Module
Formats.
R&L
-
acronym
for
Relocation
and
Linkaqe.
MAS
-
acronym
for
Memory
Address
Space.
The
8086
MAS
is
1
meqabyte
(1,048,576).
Note
that
the
MAS
is
distinguished
from
actual
memory,
which
may
occupy
only
a
portion
of
the
MAS.
MODULE
an
-inseparable"
collection
of
object
code
and
other
information
produced
by
a
translator
or
by
the
LINK-So
proqram.
When a
distinction
must
be
made,
T-MODULE
will
denote
a
module
created
by
a
translator,
such
as
PLM86
or
ASM-86,
L-MODULE
will
denote
a
module
created
by
(cross)
LINK-86
VI.3
or
earlier
versions,
and
R-MODULE
will
denote
a
module
created
by
(8rrJ86
based)
LINK-86
from
1
or
more
constituent
modules.
(Note
that
modules
are
not
"created"
in
this
sense
by
LOCATE-86;
the
output
module
from
LOCATE-8fi
is
merely
a
transformation
of
the
input
module.)
Two
observations
about
modules
must
be
made:
l}
Every
module
must
have
a
name,
so
that
the
808~
Librarian,
LIB86,
has
a
handle
for
the
module
for
display
to
the
user.
(If
there
is
no
need
to
provide
a
handle
for
LIB8o.
the
name
may
be
null.)
Transl~tors
will
provide
names
for
T-rnodules,
orovidinq
a
default
name
(possibly
the
file
name
or
a
null
name)
if
neither
source
code
nor
user
specifies
otherwise.
2)
Every
T-module
in
a
collection
of
modules
linked
toqether
ouqht
to
have
a
different
name,
so
that
symbolic
debuqoinq
systems
(such
as
ICE-8n)
can
distinquish
the
various
line
numbers
and
local
5