8086
RELOCATABLE
OBJECT
MODULE
FORMATS
An
Intel Technical Specification
Order
Number:
121748-001
.
Copyr;ght~1981
Intel Corporation,
3065
Intel Corporation
Bowers
Avenue,
Santa Clara, California
95051
Additional copies
Literature Department
Intel Corporation
3065
Bowers A venue
Santa Clara,
of
this manual
CA
95051
or
other Intel literature may be obtained from:
The information in this document
Intel Corporation makes no warranty
to. the implied warranties
assumes no responsibility for any errors that may appear
is
subject to change without notice.
of
of
merchantability
any kind with regard to this material. including, but not limited
and
fitness for a particular purpose. Intel Corporation
in
this document. Intel Corporation makes no
commitment to update nor to keep current the information contained in this document.
Intel Corporation assumes no responsibility for the use
an Intel product. No other circuit patent licenses
Intel software products are copyrighted
duplication
or
disclosure
is
subject to restrictions stated in Intel's software license.
are
implied.
by
and shall remain the property
any circuitry other than circuitry embodied
of
Intel Corporation. Use.
or
as defined in ASPR
in
of
7-104.9(a)(9).
No part
of
this document may be copied
of
written consent
Intel Cqrporation.
The following are trademarks
of
Intel Corporation and its affiliates and may be used only to identify Intel
or
reproduced in any form
or
by
any means without the prior
products:
BXP Intelevision Multibus
CREDIT
i
ICE iSBC
iCS
im
Insile MCS
Intel
inlel
and the combination of ICE, iCS, iRMX, iSBC, iSBX, MCS.
ii
Intellec Multimodule
iRMX Plug-A-Bubbk
iSBX
library
Manager RMX/!lO
Megachassis
Micromap
or
RMX and a numerical suffix.
PROMPT
Pwm\\are
Sy,lcm
:!OOO
UPI
"Scope
IA
500/1181/500
IPI
8086
Object
Module
Formats
Version
4."
TABLE
DOCUMENT
- 'fABLE
INTRODUCTION • • • • • • • • • •
DEFINITION
MODULE
MODULE
MODULE
SEGMENT
SEGMENT
SYMBOL
DATA
INDICES
CONCEPTUAL
~~ODULE
RECORD
INTRODUCTION
RECORD
'r-MODULE
L-MODULE
R-MODULE
LIST
SEG~ENT
~~OUP
TYPE
SYMBOL
PUBLIC
EXTERNAL
LOCAL
LINE NUMBERS
BLOCK
B
DE8UG
DATA
RELOCATA9LE
RELOCATABLE ITERATED
PHYSICAL
PHYSICAL ITERATED
LOGICAL
LOGICAL ITERATED
FIXUP
OVERLAY
END
REGISTEa
MODULE
LI
i3RARY
LIHRARY
LIBRARY
LIBRAHY
CONTROL
OF
CONTENTS
OF
TERMS
SEMANTICS
IDENTIFICATION
ATTRIBUTES
DEFINITION
ADDRESSING •
DEFINITION
• • • • • • •
• • • • • • • • • • •
FRAMEWORK
SYN'fAX
ORDER
to
FORl~ATS
HEADER
HEADER
HEADER
OF
NAMES
DEFINITION
DEFINITION
DEFINITION
DEFINITION
NAMES
NAMES
SYMBOLS
DEFINITION
LOCK
END
SYMBOLS
RECORDS
ENU~ERATED
RECORD
DEFINITIO~
RECORD
INITIALIZATION
E~D
I~ECORDS
HEADER
~ODULE
r-10DULE
RECORD
E~U~ERATED
• • • • • • • • • • • • • • • • • • • • •
RECORD
• •
••••••
••••••
••••••
FOR
• • • •
the
RECORD
RECORD
RECORD
RECORD
RECORD
HECORD
DEFINITION
RECORD
RECORD
RECORD
gNU~ERATED
• • • • • • • • • • • • • • • •
• • • • •
RECORD
R~CORD
RECORDS
DEFINITION
~ECORD
• • • • • • • • •
DATA
DATA
DATA
RECORD
• • • • • • • • • • • • • • • • •
RECORD
NAMES
LOCA'fIONS
OF
. . . . . . .
• • • •
• • •
. . .
FIXUPS
FORMATS
• • • •
• • • •
•
•••
• • • •
RECORD
••
• • • • • • •
DATA
DATA
DATA
RECORD
RECORD
RECORD
RECORD
RECORO
RECORD
~ECORD
CONTENTS
· . . . . . . .
· . . . . .
.
· . .
• • • • • • • 9
• • • • • • • • • •
• • • • • • • • • • •
• • • • • • • • • • • • •
• • • • • • • • • • •
• • • • • • • • • • • • •.
• • • • • • • • • • • • •
• • • • • • • • • • • •
• •
• • • •
• • • • • • • • • • • • • 21;
• • • • • • • • • • • • •
• • • • • • • • • • • • •
• • • • • • • • • • • • •
• • • • • • • • • • •
• • • • • • • • •
• • • • • • • • •
•
RECORD
• • •
• • •
• • •
RECORD
RECORD
• • • • • • • •
• • • • • • • • • • • • •
• • • • • • • • • • • • •
• • • • • •
• • • • • • • • • • • • •
• • • • • • • • •
•
• • • • • • • • • •
• •
• • • • • • • • • •
• • • • • • • • • •
• • • • • • •
• • • • • • • • • •
• • • • •
• • • • • • • •
• • • • • • • • • •
• • • • • • • • • • •
. . . . . .
.
· . . .
• • • • • • • •
• • • • • •
• • • • • • • •
••
. . .
-.
• • • •
...
~
••••
•••
• • 9
••
18
10
11
12
13
22
24
27
28
31
32
36
(0
44
47
49
51
53
56
• •
57
~0
~2
~4
~5
~~
~R
70
74
7~
77
80
82
•
83
84
2
3
5
5
9
3
8086
Object
Module
Formats
Version
4.(J
LIBRARY DICTIONARY
COMMENT
1.
NUMERIC
2.
TYPE REPRES ENTA'tIONS
3.
SYNTAX
4.
EXAMPLES
RECORD
LIST
DIAGRA~S
OF
FIXUPS
RECORD
• • • • • • •
OF
RECORD
• • • • • •
TYPES
•••
••
· . .
· . .
APPENDICES
· . .
· . .
. .
· . . . . . . .
• •
· . . . . .
• •
· . .
· . . . .
· . . . .
• •
. . . . . .
• • • •
• •
• • • •
•
85
•
Sf;
88
89
91
97
4
Sf)
86
Object
i\4odule
Formats
INTRODUC'f ION
Version
4.rrJ
Here
lanquaqe
the
output
processor.
languaqe
processors
debuqgers.
The
relocatable
Capabilities
mapping
facilities
This
The
forward
terms
without
OMF -acronym
R&L -acronym
MAS -acronym
(1,048,576).
which
may
are
the
for
of
all
'fhe
8086
memory
are
section
are
for
for
for
Note
occupy
object
the
8686
lanquaqe
8086 -object
such
object
imaqes
provided
of
defines
ordered
forward
Object
Relocation
Memory
that
only
record
microprocessor.
translators
lanquaqe
as
module
that
that
the
8086
certain
not
references.
DEFINITION
Module
Formats.
and
Address
the
MAS
a
portion
formats
The
with
is
input
linkers,
locaters,
formats
may
allow
be
efficient
microprocessor.
terms
fundamental
alphabetically,
of-TERMS
Linkaqe.
Space.
is
of
The
distinguished
the
MAS.
that
8086
the
permit
linked
8086
define
object
8086
and
output
specification
to
use
but
MAS
from
the
lanquaqe
as
the
for
librarians,
one
of
the
to
S08~
so
you
is
1
actual
object
tarqet
object
and
another.
memory
R&L.
can
read
meqabyte
memory,
is
of
MODULE
information
When a
T-MODULE
or
ASM-86,
L-MODULE
earlier
R-MODULE
or
more
in
this
merely
LIB86,
there
null.)
default
source
ouqht
(such
an
-inseparable"
produced
distinction
will
will
versions,
will
constituent
sense
a
transformation
Two
observations
l}
Every
has
is
a
no
need
Transl~tors
name
code
2)
to
as
nor
Every
have
ICE-8n)
must
denote
denote
and
denote
by
module
handle
to
(possibly
user
T-module
a
different
can
by
a
be
made,
a
module
a
module
a
module
modules.
LOCATE-86;
of
the
about
must
have
for
provide
will
the
file
specifies
in
name,
distinquish
collection
translator
created
created
created
(Note
the
input
modules
a
name,
the
module
a
handle
provide
name
otherwise.
a
collection
so
the
of
or
by a translator,
by
by
(8rrJ86
that
modules
output
module.)
must
names
for
or
so
for
be
that
display
LIB8o.
for
a
of
that
symbolic
various
object
by
the
(cross)
based)
are
module
made:
the
T-rnodules,
null
modules
line
code
LINK-So
such
LINK-86
LINK-86
not
from
to
the
LOCATE-8fi
808~
the
name
name)
linked
debuqoinq
numbers
and
other
proqram.
as
PLM86
VI.3
from
"created"
Librarian,
user.
may
orovidinq
if
neither
toqether
systems
and
local
or
1
is
(If
be
a
5
8086
Object
Module
Formats
Version
4.0
symbols.
enforced
LOGICAL
contents
binding)
determined
not
LSEGts,
at
LOCATE-time
object
FRAME
- A
boundary
because
(possibly
can
access
can
addressed
LSEG.
PSEG
-
MFRAME·
and
Mlogical
by
SEGMENT
are
•
be
final
forming
code,
contiguous
the
An
LSEG
fit
This
because
This
restriction
it.
determined
Neither
at
translation-time:
because
a
(althouqh
whose
(i.e.,
on a multiple
content
overlappinq)
a
memory
is
constrained
in
a FRAME.
by
a
l6-bit
term
is
the
M
nature
is
(LSEG) A
at
size
the
LSEG
sinqle
LSEG;
location
region
of
the
of
four
FRAME's;
location
This
offset
equivalent
terms
of
MPSEGM and
the
not
reauired
contiquous
translation-time
nor
location
size,
~ay
be
combined
location
some
is
64K
outside
to
from
to
translators
already
of
of
16
8086
no
be
no
means
the
FRAME.
MAS,
bytes).
seqment
16-bit
of
qreater
that
base
MLSEGd reflect
underlyinq
by
reqion
(except
in
MAS
althouqh
at
in
MAS
is
may
determined).
beqinninq
This
reqisters
address
the
current
than
any
byte
of
a
Some
people
seqments.
R&L,
of
are
partially
LINK-time
usually
produce
on
concept
in
four
fi4K,
in
FRAME
~refer
the
and
memory
for
necessarily
fixed,
determined
Mabsolute~
a
paragraph
is
define
the
8086
FRAME's.
so
an
LSEG
covering
MPSEG~
~physicaln
is
whose
address-
to
other
useful
four
code
that
may
not
may
it
be
the
to
FRAME
NU~BER
Mparaqraphs·
each
PARAGRAPH
PSEG
of
which
NUMBER -This
NU~BER
PIC -acronym
where
load
specified
allowed.
LTL -acronym
PIC
module
GROUP
whose
will
- a
be
group
final
at
collection.
The
notation
arouo,
and
The
not
imply
contiquity
in
defines
-
This
for
addresses
relative
for
except
is
locations
least
that
fact
any
orderinq
between
Every
MAS
can
term
Position
to
Load-Time
that
a
collection
one
fRAME
~Gr
the
qroup's
that
X, Y
X, Y
FRAME
be
numbered
a FRAME.
term
is
is
equivalent
Independent
and
seqment
Locatable.
base
in
fixups
MAS
which
A(X,y,Z)d
name
and
of
X, Y
and
Z.
beqins
are
equivalent
reqister
and
of
LSEG's
have
been
covers
means
is
Z
are
and
on
0,l,2,
called
to
"FRAME
Code.
initialization
qroup
An
are
allowed.
constrained
that
A.
all
LSEG's
Z
in
a
paraqraph
•••
,~5535.
FRAME
to
"FRA,,.,E
A
bases.
LTL
module
defined
(contains)
LSEG's
MAS,
nor
boundary.
These
NUMBERS.
NUl'JfBER."
NU~BER.~
PIC
module
No
is
similar
at
translation-time,
such
every
in
X, Y
the
does
and
same
it
is
values
fixups
that
LSEG
Z
~roup
imply
The
numhers,
a
module
are
are
to
there
in
the
form
does
any
a
a
8086
Object
In
one
group
G2(B,C,D)
be
in
G2
is
not
single
the
in
more
sufficient
FRAME,
Module
PIC/LTL
(e.g.
the
same
than
althouqh
Formats
case,
defininq
one
to
an
module
group.
infer
they
LSEG
two
is
The
that
miqht.
is
qroups
not
existence
not
legal).
A,B,C,D
allowed
such
Otherwise
of
to
as
Gr
qroups
all
be
in
GI(A,C,B)
an
such
lie
within
Version
more
LSEG
as
and
Gl
4.8
than
Gr
may
and
some
CANONIC
FRAME's;
has
FRAME
a
is
Thus,
speak
By
extension,
a
unique
canonic
the
FRAME
SEGMENT
names
canonic
of
NAME -LSEG's
serve
1)
combined
2)
LSEG·s.
3)
CLASS
NAME
translation-time.
are
in
any
but
higher
called
if
of
the
FRAME
FRAME'S
an
only
they
with
they
they
the
same
location
one
FRA~E
Foa
if
FRA~E
LSEG
playa
what
may
are
LSEG's
class
of
these
NUMBER
the
canonic
is
a
"canonic
S
is
which
of
the
of
or
of
are
3
purposes:
role
other
be
used
Classes
in
FRAME's
symbol
FRAME
any
set
has
locations
the
a
Group
assigned
at
LSEG's.
used
in
assembly
may
iff
they
MAS
is
than
any
FRAME
defininq
of
of
memory
the
in
set
S.
of
names
LINK-time
at
LOCATE-time
optionally
define
have
contained
can
be
other
of
the
a
Faa·,
lowest
S.
Thus,
LSEG's.
at
in
source
be
a
partition
the
in
exactly
distinguished
FRAME.
location.
memory
or of
-FOO's
locations,
FRAME
This
we
unique
may
translation-time.
determininq
to
code
to
assiqned
on
same
Class
4996
This
distinguished
location,
canonic
then
NU~BER
in
FRAME
speak
of
~h~t
desiqnate
specify
Class
~~5EG's:
Name.
in
there
the
is
the
LSEr,'s
groups.
two
distinct
that
one
FRAME".
exists
set
called
canonic
These
specific
Names
LSEG's
it
may
of
are
at
R&L
semantics
might
be
The
Names
above;
identify
OVERLAY
translation-time
translator
module
An
a
handle
Class
Names,
LOCATE-86
~located"
associates
are
RED, BLUE,
uses
additionally,
many
NAME
or
will
be
Overlay
on
however,
proqram.
at
overlappinq
completely
GREEN
of
Class
LSEG's
by a single
LSEG's
oratLINK-time.
LINK-So
assiqned
Name
is
user-defined
no
semantics
user-defined.
or
may
is
the
similar
Overlay
(In
brief.
MAS
ROM,
Names
Class
include
Names
handle
optionally
invoked,
same
Overlay
to
equivalence
Names
LSEG's
locations.)
with
RAM,
This
a
specific
Examples
DISPLAYMEMORY.
the
first
qive
be
and
the
at
LOCATE-time.
assiqned
name
all
is
LSEG's
Name.
Class
N~me
classes
have
semantics
in
different
Class
of
2
uses
user
an
Overlay
specified
within
in
that
of
LSEG's.
overlays
Names;
Class
of
the
power
when
it
kno~n
class
Names
Seqment
Name
the
the
same
provides
Unlike
by
the
may
to
at
be
7
8086
Object
Module
Formats
Version
4.0
COMPLET~
three
Name
NAME -The
component
and
combined
Overlay
iff
their
~complete
identification
Name.
Com~lete
nameH of
consistinq
LSEG's
Names
from
are
an
LSEG
different
identical.
of
is
the
defined
Segment
modules
to
be
Name,
will
the
Class
be
8
8086
Object
Module
Formats
Version
4.9
In
order
module
There
name.
header
are
The
below.
A
module
translation
called
a T-MODULE. A T-MODULE
(THEADR).
translator.
symbols
A
module
and
R-MODULE.
(LHEADR).
(RHEADR).
be
provided.
to
the
An
example
R-~ODULE
beqin
as
other
the
are
with
a
directive
tools
oriqinatinq
preserved
three
additional
or
A
name
line
An
An
In
module
would
C.
an
such
MODULE
to
determin~
record
will
kinds
functions
name
may
linking.
may
This
name
numbers
that
results
L-MODULE
R-MODULE
the
LHEADR
This
will
name
without
be
two
R-MODULE C
RHEADR
from
as
record
the
the
module's
for
debugginq
IDENTIFICATION
always
of
A
that
header
be
module
a
file
be
records
of
the
qenerated
that
will
be
provided
is
found
from
will
record
is
available
usinq
then
always
in
linkinq
always
or
any
used
the
have
the
of
T-MODULES, A
will
with
user.
library
names,
contain
the
The
manaqer
yet
purposes.
contains
the
first
and
header
durinq
results
have
in
the
to
identify
T-MODULE.
is
have
an
RHEADR
for
use
its
constituent
and
S,
two
name
C
·R-MODULE
without
the
oriainatinq
an
record
each
records
one
from
a T-MODULE
THEADR
called
an
an
L-MODULE
R-MODULE
record
as
a
means
linked
THEADR
provided
C
can
h~vinq
object
in
provides
are
of
two
translation
HEADER
record
the
source
L-MODULE
HEADER
HEADER
a
name
of
T-MODULE
toqether
records
by
be
referred
to
module's
program,
a
module.
a
module
explained
processes:
RECORD
of
or
RECORD
RECORD
may
referrinq
names.
to
and
the
linker
know
is
by
all
an
also
form
will
to
by
about
names
a
a
In
attribute
starting
module
specifies
If
then
this
debuqginq
module
and
initiated
In
may
not
A
seauence
addition
of
address.
with
the
a
value
purposes.
could
summarYr
have
module
of
beinq
the
main
result
module
has
be
the
independent
a
startinq
is
defined
records
to
an
a
main
When
attribute
of
is
been
A
entry
modules
produced
MODULE
optional
program
linking
finding
not
a
provided
starting
point
of
a
mayor
address.
SEGMENT
as
a
ATTRIBUTES
name,
as
multiple
should
two
or
main
module
by
address
of
a
procedure,
main
proqram.
may
DEFINITIO~
collection
hy
a
translator.
well
be
more
a
not
a
as
modules
given.
main
yet
has
translator,
specified
be
main
of
object
module
havinq
tog~ther,
The
modules.
a
starting
which
as
code
The
may
a
linker
possibly
for
may
well
defined
obiect
have
specified
only
address
a
non-main
be
loaded
as
mayor
the
one
EPS
for
by
code
a
9
808fi
Object
Module
Formats
Version
4.0
represents
determined
SEGMENTS
the
attributes
is
the
alignment,
when
multiple
(GROUPING,
required
RHEAOR)
•
The
from
which
addressed.
segment
(SS)
base
•
The
far
exceeds
reqisters
modular
program
contiquous
at
(LSEG's).
vehicle
etc.)
see
to
8086
a
64K
There
registers
possible
the
may
translation-time.
A
module
of
each
by
is
LSEG's
below)
follow
LSEG.
which
maintained.
are
is
the
SEGMENT
addressing
byte
reqion
is
one
(OS,
number
number
require
with
of
frequent
many
reqions
of
These
all
must
The
LSEG
contain
SEG~ENT
information
The
combined
est~blished.
first
header
and
ADDRESSING
mechanism
of
memory,
code
seqment
ES),
of
LSEG' s
available
and
provides
one
that
base
loading.
small
data
and/or
memory
reqions
DEFINITION
LSEG
information
when
The
record
called
base
stack
may
This
whose
are
information
(name,
seqment
SEGDEF
(THEADR,
seqment
a FRAME,
reqister
seqment
make
up a memory
registers.
would
code
LSEG's.
contents
called
that
RECORD
length,
is
addressability
records
or
LHEADR,
base
registers
(CS),
base
Thus,
be
the
case
are
LOGICAL
defines
(SEGDEF)
memory
required
are
or
may
two
be
data
reqister
imaqe
base
in
a
Hence
addressable
name
earlier
for
in
To
established,
The
GROUP
segments
segment
defininq
The
records
asGRPDEF
GROUP.
header
explicit
records
orderinq
Within
definition
requirements:
be
resolved
(linkinq)
numbers
should
the
motivation
unit
this
allow
addressable
the
DEFINITION
addressa~ility
each
DEFINITION
either
GRPDEF
The
GRPDEF
as
a
module
records.
1)
by
and
2)
be
that
GROUP
RECORD
by
segment
symbol
records
records
records
some
of
records
thera
The
references
eauivalently
attributes
made
to
collect
can
be
contained
unit
OF
is
TERMS.
of
must
be
explicitly
(GRPDEF)
name
FOO"
or
or
"the
within
may
reference
must
R&L
products
is
aiven
SYMBOL,DEFINITIO~
may
be
necessity
to
LSEG's
a
GROUP
objects
provides
by
segment
seqments
a
module
also
must
Inter.
six
for
externally
defined
of
locally
availahle
for
debuqqinq
within
defined
SEGDEF
precede
process
different
these
defined
symbols
defined
toqether
a
memory
and
has
within
a
list
attribute
with
must
records
all
them
records
in
symbols
purposes.
a
in
of
class
follow
other
types
is
symbols
another
to
form
frame.
been
GROUP
the
constituent
such
name
all
in
defininq
records
first.
of
based
and
one
The
defined
to
be
module.
as
~the
ROft1".
SEGDEF
but
The
symhol
on
two
should
module
line
a
10
8086
Object
Module
Formats
Version
4.0
The
linkinq
the
is
EXTERNAL
DEFINITION
later.
The
LOCAL
DEBUG
the
SYMBOLS
SYMBOLS
BLOCK
(T¥PDEF) •
their
THEADR
is
are
original
record
The
data
maintained
of
three
There
DATA
Each
FRA~E
FRAME
the
RIDATA
a
RIDATA
rather
RECORD
relocatable
number,
number,
absolute
record
structure
record
than
does.
requirements
satisfied
NAMES
RECORD
requirements
RECORD
RECORD
END
RECORD
The
association
defining
as
explained
that
in
classes:
are
two
(REOATA)
DATA
and
and
address
differs
that
is
must
to
explicitly
for
by
the
DEFINITION
(TYPDEF).
for
(LOCSYM),
(DEBSYM),
(BLKEND),
modules
defines
six
varieties
relocatable,
Relocatable
and
record
perhaps
the
GRPDEF
at
in
be
reduce
symbol
PUBLIC
Their
debugqinq
the
the
and
of
the
is
earlier.
DATA
the
memory
of
DATA
RELOCAT~BLE
is
associated
a GRPDEF
record
which
that
expanded
the
the
module
data
data
by
size
enumeratinq
definition
NAMES
DEFINITION
RECORD
semantics
information
LINE
BLOCK
NU~BERS
DEFINITION
the
line
numbers
essential
imaqe
DATA
physical,
records:
ITERATED
Record.
provide
bytes
bytes
the
loader.
by
each
(EXTDEF),
are
RECORD
TYPE
and
and
represented
records.
and
RELOCATABLE
DATA
with
The
a SEGDEF
SEGDEF
information
are
are
encodinq
~yte,
as
records
RECORD
and
will
be
satisfied
(LINNU~),
RECORD
DEFINITION
local
maintained
by
The
DATA
loqical.
RECORD
record
to
to
be
loaded.
represented
The
purpose
repeated
the
REDATA
for
module
(PUBDEF),
the
TYPE
explained
by
the
the
(BLKDEF),
RECORD
symbols
by
the
a
module
records
ENUMERATED
(RIOATA).
record
or
or
the
determine
The
within
of
the
data
record
to
a
There
RECORD
PEDATA
data
bytes
There
DATA
RECORD
Each
SEGDEF
records
Physical
Data
records,
address
In
logical
are
(PEDATA)
and
PIDATA
it
are
record
to
DATA
bytes
as
an
(absolute)
summary,
two
and
records
contains
also
(LEDATA)
DATA
provides
be
converted
records.
for
LSEG
Physical
and
record
all
is
but
there
RELOCATABLE, PHYSICAL,
absolute
found
seqment~,
in
PHYSICAL
divorced
DATA
DATA
records:
PHYSICAL ITERATED
are
two
provide
to
Loqical
be
an
absolute
loaded.
DATA
LOGICAL ITERATED
is
associated
information
to
LSEG's
either
has
and
relocatable
not
~re
LOGICAL.
form
RECORDS.
been
three
either
are
all
that
maintained
divorced
classes
The
LSEG
Data
PHYSICAL
DATA
RECORD
address
records:
DATA
with
a SEGDEF
allows
Relocatable
or
it
from
of
data
and
bytes
GROUP
bytes
ENUMERATED
LOGICAL
RECORD
the
DATA
in
has
been
GROUP
DATA
of
information,
from
(PIDATA).
at
which
ENU~ERATED
(LIOATA).
record.
loqical
records
loqical
assiqned
informntion.
records,
the
"unnamed
all
LSEG's,
DATA
The
the
The
DATA
or
DATA
an
are
11
8086
Object
Module
Formats
Version
4.~
absolute
or
ENUMERATED
of
representinq
A
8086
probably
for
loadinq
records
DATA
not
are
records
Throughout
An
index
collection
INDEX,
SEGMENT
INDEX.)
The
special
(e.q.,
absolute
specifies
"Decline
relocatable,
and
ITERATED
the
loader
be
able
LDATA
sometimes
are
called
the
is
an
of
such
INDEX,
(Note)
index
meaning
a
Seqment
pseudo-segment;
to
actual
can
to
maintain
Records.
uNon-Loadable
808~-OMF
integer
items.
GROUP
An
index
value
dependant
I~dex
the
"Untyped
state"»
are
found
attributes
data
load
Thus,
called
INDICES
specification,
that
(Exhaustive
INDEX,
is
zero
of
~
in
bytes.
RDATA
the
"Loadable
selects
EXTERNAL
normally
is
upon
zero
a
U
type
(End
of
LOGICAL
within
or
PDATA
LSEG
table
Relocatable
DATA
"
d
DATA
some
list
a
reserved,
the
specifies
Type
(which
Note)
DATA
the
classes
information
records,
records.
"index
particular
of
INDEX,
positive
and
type
the
Index
is
different
RECORDS.
Records,
and
U
Physical
fields
examples:
TYPE
number.
may
carry
of
·Unnamed,
of
are
two
but
reauired
and
item
INDEX,
a
index
zero
from
The
ways
will
DATA
Logical
occur.
from
NA~E
BLOCK
a
In
larger
contain
indices
The
only)
If
byte
the
occupying
between
follows:
order
7
general,
than
no
indices
will
hiqh-order
determines
bit
one
0
the
bits
255).
be
encoded
is
byte.
and
low-order
are
indices
Nevertheless,
with
values
(left-most)
whether
0,
then
If
the
32K-l,
8
in
the
first
must
in
1
assume
or
the
bit
occupyinq
bits
byte.
a
qreater
2
the
index
is
are
values
qreat
bytes,
bit
index
1,
two
in
number
than
as
of
the
occupies
is
a
then
bytes,
the
quite
50
required:
first
number
the
second
of
or
one
index
and
byte,
larqe
ob;ect
100.
(and
hyte
between
is
is
determined
and
(i.e.,
files
Therefore,
possibly
or
0
and
a
the
much
will
the
two.
127,
number
as
hiqh-
12
808~
Object
Module
Formats
Version
4.0
A
translator,
(see
Appendix
8086
data:
of
two
address
defining
CONCEPTUAL
"Fixup"
is
performed
4
(Note)
represents
Nevertheless.
modifications
not
conform
bindinq
or
software
modification
code
definition
disparaqe
sense.
and/or
(l)
the
possible
to
which
a
context
is
of
treated
,End
place
some
for
Examples)
This
the
viewpoint
the
of
to
code
floatinq
to
of
object
of
8089
and
fixup
LOCATION
within
FRAMEWORK
modification
by
the
R&L
definition
R&L
system
object
this
an
as
"fixup"
definition.
to
either
operation
if
it
is
code
Note)
translators
type
of
MODE'S.
must
be
which
for
to
object
system,
of
maintained
can
be
code
point
(i.e.,
of
hardware
subroutines,
code,
were
not
an
address.
intended
modifications
specify
a LOCATION
(3)
made
the
a TARGET,
to
reference
FIXUP's
code,
achievinq
"fixup-
by
the
used
dfixups")
For
where
a
to
refer,
takes
accurately
R&L
to
example.
floatinq
the
The
to
disallow
in
the
fixup
be
fixed
which
and
requested
address
system.
achieve
that
point
is
operation
above
wider
by
qivinq
up,
is
(4)
place.
bindinq.
do
the
a
or
(2)
a
a
by
four
one
mem(cy
FRAME
a
LOCATION
OFFSET,
(remember
byte
word
a HIBYTE,
The
vertical
"Nith
of
the
a
pointer
There
that
hiqher
are
and
a LOBYTE:
Pointer:
Base:
Offset:
Hibyte:
Lobyte:
alignment
the
hiqh
address):
(and
5
types
orner
R~L
of
LOCATION: a POINTER, a BASE,
+----+----+----+----+
+----+----+----+----+
+----+----+
I ,
+----+----+
+----+----+
I I
+----+----+
+----+
I I
+----+
+----+
I I
+----+
of
this
byte
(1)
~oesn't
diaqram
of
a
B.~SE
care
a
if
word
is
the
illustrates
in
q~8~
merely
low
order
me~ory
the
hi1h
word
4
points
is
the
':)rder
of
the
an
13
8086
Object
Module
Formats
version
4.0
pointer
word
follows
OFFSET
(4)
a
doesn't
types
specified
Record;
LOCAT
MODE
-
relative-.
used
relative
TARGET -
explicitly,
the
object
ways.
primary
NU~BER
is
present
of
a
pointer
or
not);
(and
LOBYTE
care
R&L
is
if
A LOCATION
the
LOCATION
by
(2)
is
field
R&L
of
supports
Self-relative
in
the
CALL, JUMP
fixups
The
TARGET
the
beinq
There
way
'X',
are
of
specifyinq
and
or
(3)
doesn't
merely
the
hiQh
is
is,
the
LOC
specified
the
FIXUPP
2
fixups
support
is
the
TARGET
referenced.)
4
a
displacement
not):
(and
R&L
a HIBYTE
Nare
the
low
order
specified
and
subfield
by
the
Record.
kinds
of
support
and
all
other
location
may
-primarya
TARGET
(2)
an
doesn't
is
merely
if
the
order
half
-by 2 data:
(2)
where
DATA
fixups:
SHORT-JUMP
be
considered
A TARGET
ways,
'0':
OFFSET
the
low
order
half
follows
the
of
the
RECORD
dself-relative~
the
8-
addressinq
in
MAS
is
and
uses
2
is
merely
care
hiqh
of
or
(1)
if
half
an
not).
which
the
order
precedes
OFFSET
LOCATION
LOCAT
OFFSET
and
beina
to
field
subfield
16-bit
instru~tions.
modes
of
referenced.
be
the
specified
4
~secondary-
data:
an
the
high
low
order
half
or
order
of
not);
(and
of
the
above
is.
of
the
(1)
FIXUPP
of
and
dseqment-
offsets
that
Seqment-
the
8086.
(More
lowest
in
one
ways.
byte
of
-Each
INDEX-or-FRAME-
word
an
R&L
5
is
the
are
in
8
(T0) X
LSEG
the
lowest
followinq
External
FRAME
identified
(TI)
first
(T2)
(T3)
identified
in
X
byte
MAS.
X
the
Name
X
is
is
a
by
is
a
in
is
an
byte
identified
a
SEGMEN'r
GROUP
EXTERNAL
FRAME
by
(X*16)+D).
Each
the
INDEX-or-FRAME-NUMBER X.
is
assumed:
(T4)
in
the
(TS)
in
the
lowest
secondary
X
LSEG
LSEG
in
~AS.
is
a
identified
X
is
in
the
SEGMENT
a
the
INDEX.
INDEX.
the
LSEG
whose
NUMBER.
the
way
by
GROUP
specified
INDEX.
INDEX.
by
the
FRAME
of
specifyinq
INDEX.
the
INDEX.
The
in
the
address
INDEX.
The
NUMBER
An
INDgX.
qroup
The
TARGET
qroup
The
TARGET
(i.e.,
implicit
The
TARGeT
The
TARGET
TARGET
is
that
TARGET
is
(eventually)
is
the
a TARGET
displacement
is
is
that
is
is
the
the
O'th
is
eventually
is
the
address
uses
the
the
eventually
O'th
the
O'th
only
0'th
~'th
byte
byte
O'th
qiven
byte
of
TARGET
1
equal
(first).byte
(first)
in
the
followinq
LOCATE'd
byte
hy
the
in
the
datum:
to
zero
byte
LOCATE'd
is
14
R986
Object
Module
Formats
Version
4.9
(T6)
address
X
is
(eventually
is
INDEX.
(T7)
address
The
Here
TARGET:
X
is
(X*l6).
following
TARGET:
TARGET:
TARGET:
TARGET:
TARGET:
TARGET:
TARGET:
TARGET:
are
SI(CODE)
is
SI«seqment
GI«qroup
EI«symbol
<FRAME
SI«seqment
GI«qroup
EI«symbol
<FRAME
some
TARGET: GI(DATAAREA)
an
a
FRAME
nomenclature
examples
,1024
EXTERNAL
qiven
NUMBER.
name»
name»
name»
INDEX.
by)
the
External
The
TARGET
is
used
,<displacement>
,<displacement>
,<displacement>
The
to
NUM9ER>,<displacement>
name»
name»
name»
NUMBER>
of
how
The
the
the
a
qroup
this
notation
l025th
segment
location
called
TARGET
Name
is
the
describe
byte
in
·CODE"
in
MAS
-DATAAREA
is
identified
byte
a TARGET:
(T0]
(TIl
[T21
(T3]
(T41
(T51
(T~l
(T71
can
be
of
the
d
byte
whose
used:
whose
by
the
20-bit
TARGET:
TARGET:
TARGET: EI(PAYSCHEDULE)
Altnouqh
the
same
TARG8T,
discussed
arithmetic.
FRAME -Every
some
seqment
FRAME;
register.
reference,
respect
fixup
below.
as
above.
to
specifies
Some
This
reference
independently
EI(SIN)
8000H,24H
-TARGET:
their
below
8086
in
memory
where
it
must
which
FRAME
such
ways
Other
is
may
use
ways
not
be
of
the
the
In
order
know
the
a
FRAME,
a
require
the
case
to
FRA~E.
,24
SICA)"
use
section
reference
FRAME
for
not
reference
datum,
of
any
location
the
subroutine
MAS
the
location
EXTERNAL
called
and
can
is
is
R&L
only
in
one
X,
which
no
datum.
an
8089
The
address
location
24th
byte
of
data
dPAYSCHEOULE-
"TARGET:
have
on
different
intermediate
to
a
desiqnated
to
form a correct,
what
the
is
of
5
is
self-relative
within
only
of
the
·SIN"
800248
followinq
an
structure
SI(A)
location
by
TARGET
heinq
ways
(F0,
an
INDEX-or-FRAME-NUMBER,
an
restriction
external
,0"
effects,
values
contained
the
content
is,
made.
•••
8089
the
both
usable
but
also
Thus
,F5)
described
reference.
is
that
specify
as
in
fixup
within
of
some
memory
with
every
The
proaram,
the
is
15
808~
Object
Module
Formats
Version
4.0
displacement
To
indicate
is
introduced.
Below
frames:
(Fe)
the
LSEG
(FI)
defined
the
by
qroup
(F2)
External
LSEG,
canonic
reference
Group.
subfield
symbol's
between
this
is
x
defined
X
is
the
that
X
is
Name's
(F2a)
and
(F2b)
type
the
is
a
by
a
GROUP
descriptlon
SEGMENT
group
is
eventually
an
EX'rERNAL
public
The
there
FRAME
The
to
The
of
the
definition.
the
of
the
(i.e
definition
is
is
an
FRAME
PUBDEF
LOCATION
fixup,
INDEX.
INDEX.
INDEX.
••
the
LOCATE'd
INDEX.
symbol
no
associated
specified.
symbol
LSEG,
is
Record
and
the
a
7th
way
of
the
The
FRAME
The
canonic
FRA~E
FRAME
lowest
The
FRAME
is
found.
is
defined
is
defined
and
there
speci~ied
(a.v.)
TARGET
(F6)
seven
is
is
defined
in
is
There
relative
Group.
absolutely,
is
no
by
the
that
must
of
specifyinq
ways
the
canonic
the
MAS).
determined
are
The
associated
FRAME
qives
be
within
of
specifying
canonic
by
the
3
cases:
to
some
LSEG's
without
NUMBER
the
a
FRAME
LSEG
when
32K.
frame
of
FRAME
in
the
there
the
the
GROUP
(F3)
CF4)
containing
a
PEDATA
~contained~
(F2)
the
above,
DATA
(FS)
X
No
LOCATION.
Record
Record.
No
cases:
this
this
this
(F2c)
is
Group
is
a
X.
in
taking
X.
(FSa)
case,
(FSb)
case.
(FSc)
case.
Reqardless
an
associated
is
INDEX
FRAME
The
or
an
LSEG:
the
'fhe
The
the
The
the
The
the
specified.
subfield
NUMBER
FRA~E
(If
LOCATION
a PIDATA
in
FRAME
FRA~E
is
TARGET
FRAME
is
TARGET
FRAME
is
TARGET
FRAME
is
of
how
Group.
of
the
(specifying
is
the
Record
this
case
NUMBER
determined
specified
determined
specified
determined
specified
determined
The
(The
is
specified
from
the
symbol
canonic
qroup
PUBDEF
the
canonic
(a.v.»,
the
FRAME
the
by
the
a
SEG~ENT
as
a
as
an
EXTERNAL
~s
is
specified
Record
obvious
FRAME
absolutely
is
FRAME
TARGET.
in
(F0)
GROUP
in
(Fl)
in
(F2)
is
defined,
FRAME
(q.v.).)
FRAME).
of
then
determined
NU~BER
INDEX:
above.
INDEX:
above.
INDEX:
above.
of
by
the
(i.e.,
it
field
There
in
in
in
is
LSEG
as
are
in
not
in
of
4
,
l~
8886
Object
Module
Formats
Verslon
4.8
FRAME
in
(F6)
R&L
that
siqned
TARGET
an
displacement
20-bit
Nomenclature
nomenclature
FRAME:
FRAME:
FRAME:
FRAME:
FRAME:
FRAME:
FRAME:
In
practice,
the
FRAME
FRAME
by a seqment
LSEG
of
containinq
(FSd)
NUMBER:
(F3)
No
above.
X.
8089
address
for
SI«seqment
GI«group
EI«symbol
<FRAME
LOCATION
TARGET
NONE
specified
the
LSEG
relative
The
in
There
self-relative
between
must
describing
TARGET's,
NUMB~R>
for
by
a
containinq
reference
the
TARGET.
TARGET
this
is
no
be
case
computed.
viz:
name»
name»
name»
an
808~
self-relative
This
is
specified
the
FRAME.
reference
the
LOCATION
FRAME's
memory
the
LOCATION,
will
be
will
FRAME
This
is
is
similar
reference,
reference
the
be
further
with
is
determined
is
a
to
20-bit
will
and
the
canonic
an
explicit
way
to
be
processed.
address
to
[FA1
[F11
[F21
[F3]
{F41
[F51
[F6]
it
is
be
FRAME
FRAME
explained
as
indicate
and
the
likely
the
canonic
specified
of
below.
to
A
the
above
that
the
A
self-relative
implicitly
following
reference,
block
Proqram
reference)
For
are
there
outside
is
address
position
For
32K
unique
from
l6-bit
TARGET.
If
LOCATION
If
the
the
range
displacement
defined
LOCATION
the
•
8086
self-relative
the
a
uniaue
implicitly
of
TARGET
8089
self-relative
LOCATION,
siqned
the
LOCATION
modulo
LOCATION
{-128:l27},
is
by
8086
IP
pointer)
specified
l6-bit
in
~553~:
added
SELF-RELATIVE
fixup
operates
LOCATION:
(because
(Instruction
is
references,
FRAME,
displacement
defined
the
by
FRAME.
references
R&L
qives
displacement
is
an
no
errors
is
a LOBYTE,
otherwise
to
LOCATION
namely
at
pointing
LOCATION,
a
OFFSET,
are
the
modulo
FIXUPS '
as
follows:
the
the
time
Pointer)
to
if
R&L
qives
which,
(F~),
warninq.
between
the
reported.
displacement
R&L
will
25~.
A
address
of
or
the
the
either
byte
a
warninq.
LOCATION
when
will
if
yield
TARGET
Otherwise,
the
LOCATION
displacement
qive
memory
of
a
self-relative
8989
following
added
the
is
must
a
warninq.
address
the
TP
or
TARGET
Otherwise,
to
relative
not
within
there
and
is
added
be
within
is
byte
(Task
the
the
is
the
to
The
a
17
8086
Object
what
defined
A
neqative
FRAME
defined
If
this
then
to
fixup
65536)
65536)
to
the
Module
If
the
LOCATION
the
translator
by
LINK-86
seqment-relative
l~-bit
specified
as
the
signed
R&L
will
LOCATION
(1)
if
LOCATION
to
the
high
to
the
low
(2)
if
LOCATION
BASE;
FOVAL
Formats
and/or
number,
by
the
distance
20-bit
report
in
order
order
is
is
a BASE. POINTER.
had
in
mind,
LOCATE-86
EPS·s.
and
or
the
SEGMENT-RELATIVE FIXUPS
fixup
FBVAL,
fixup,
number
an
the
following
is
a POINTER"
word
word
is
a BASE,
from
is
error.
of
operates
is
defined
and
a
the
less
Otherwise
fashion:
of
POINTER,
POINTER.
then
in
signed
base
than
then
FBVAL
the
as
of
0
and
ignored.
HIBYTE.
action
followinq
the
20-bit
the
or
qreater
FBVAL
FBVAL
FOVAL
is
added
FRAME
number,
FRAME
and
is
is
Version
it
is
taken
way:
NUMBER
FOVAL,
to
the
than
FOVAL
added
added
(modulo
unclear
by
R&L
a
of
TARGET.
65535,
are
(modulo
(modulo
~5536)
4.0
is
non-
the
is
used
(3)
65535)
to
(4)
(modulo
division
(5)
(modulo
The
that,
if
assumed
warninq
order
messaqe.
to
intermediate
values
are
Record.
if
the
if
LOCATION
25~)
is
dinteqer
if
LOCATION
256)
8086
a
TARGET
FRAME,
perform
values
The
LOCATION
OFFSET;
FBVAL
is
to
the
division
is
to
the
LOBYTE; FaVAL
IN'rERMEDIATE
Object
can
not
then
that
This
this
checkinq,
of
retained
followinq
is
an
is
a HIBYTE,
HI8YTEi
d
•
a LOBYTE,
VALUES
Module
be
accessed
failure
checkinq
its
address
either
diaqram
OFFSET.
ignored.
then
FBVAL
i.e
••
then
is
iqnored.
in
FIXUP ARITHI\1ETIC
Formats
can
be
is
called
LINK-8~
arithmetic.
in
the
illustrates
then
(FOVAL /
is
the
remainder
(FOVAL
quarantee
from
detected
daccess
and
DATA
three
FOVAL
is
25~)
iqnored.
is
modulo
255)
fixups
a
LOCATION
and
R&L
verification·
LOCATE-8~
need
These
Record,
or
cases:
added
is
(The
indicated
discarded.)
is
in
the
with
can
to
intermediate
in
the
(modulo
added
added
sense
the
issue
l
In
•
retain
FIXUP
a
18
808~
Object
~odule
Formats
Version
4.9
<----
+------+
+n
in
or
+------+
+------+
q
or
+------+
+------+
q
+------+
a
"secondary"
FIXUP
the
or
a
separately,
a POINTER.)
be
non-negative
to
a
verification
or
Case
Record,
DATA
word.
specification
OATA
Record
---->
<---
+------+------+
+n
+-------+
+-~----+------+
1
illustrates
way.
so
Record.
(If
so
In
incorporates
...
------+
q
No
arithmetic
As
tha
LOCATION
the
above
Case
1,
numbers
of
a
the
situation
explicit
must
diagram
is
a POINTER,
diagram
the
value(s)
("+n"',
displacement
the
<null>
+------+----~~+
displacement
be
and
value
in
FIXUP
+n
where
done
shows,
applies
in
are
"+n".
Record
a
in
the
the
arithmetic
separately
LOCATION
considered
'0';
--->
fixup
10'
LOCATION
thus
is
is
LOCATION
is
are
to
the
<---
<---
<---
specified
provided
itself,
may
on
to
considered
each
each
be
equivalent
R&L
be a byte
Case
Case
Case
in
half
half
access
1
2
3
in
the
in
of
to
Case
a
"primary"
FIXUP
number
complete,
validity
or
value
complement;
final
instead
{0:65535},
ranqe
be
allows
in
is
location,
best
the
REFERENT
Record.
("+n-).
modulo
g
d
"
staqe
Case
{-1,048,576:1,048,575}.
supported.
support,
a
"primary"
Here
necessary
First,
made
TARGET
2
the
by
may
3
of
may
are
with
clear
is
illustrates
wa:'.
This
When
resultant
R&L,
65536)
of
is
is
the
be
R&L
the
the
beinq
represent
It
way,
some
or
desirable:
yet
respect
by
the
location
and
with
An
explicit
displacement
all
then,
to
the
considered
doesn't
fixup.
same
is
cases
another
an
24'th
as
restricted
signed
desiqned
R&L
with
negative
~here
to
example:
TARGET: EI(STRUCT)
named
the
situation
displacement
arithmetic
value
finally,
oriqinalcontent
care
Case
access
definition:
which
byte
(in
as
because
2,
to
(Note:
into
a
a
in
after
"STRUCT"
where
is
considered
required
the
FIXUP
that
non-negative,
except
non-negative
(2's
the
verification,
displacefl\ents
"primary"
result
there
complement)
initially,
formats
a -REFERENT"
TARGE'r
the
specification
,24
the
location
itself.
a
fixup
'0'
is
to
Record)
is
of
LOCATION
or
is
no
that
is
the
numbers
for
of
101.)
specification
positioned.
named "STRUCT";
is
specified
provided
be a non-neqative
by
the
is
added
as
checkinq
displacement
in
numbers
this
TARGET'S
case
completeness:
is
in
fixup
checked
(modulo
C'q").
siqned
in
the
in
will
specified
of
a
TARGET
a
memory
This
in
the
is
for
256
The
2's
this
'0',
range
the
not
it
is
the
19
8086
Object
Module
Formats
Version
4.0
(1)
this
The
case,
reason
located,
Thus,
Now
is
LINK-8~
the
eventually
LOCATION;
Thus,
as
various
maintain
translator
for
LINK-86
(2)
REFERENT.
external
register
translator
and
place
access
TARGET
is
A 5 HORT-JMP
the
TARGET
is
that
it
will
probably
will
programmer
LOCATE'd,
however,
LINK-86
pieces
the
The
array
that
must
to
For
will
would
of
offset.
provide
maintain
translator
example,
ARY,
use
FRAME:
TARGET:
the
dneqative
verification
not
guaranteed,
should
TARGET:
when
convert
may
this
maintains
LSEG
contain
SI(FOO)
EI(ARY)
to
is
being
be
EI(subroutine)
LINK-86
be
a
the
. TARGET:
be
correct
the
does
A
are
not
combined,
Since
an
offset
intermediate
wishes
if
the
and
the
the
,0000H
offset-
the
and
made
to
an
specified
learns
known
above
TARGET
the
offset
TARGET
SI(A)
in
dknowinq·
mean
(possibly
,dl
will
that
it
the
LOCATION
field
in
fixup
to
reference
TARGET
is
the
reference
address
FFFEH
of
in
LOCATION.
REFERENT ARY:
is
the
programmer's
external
as
,0000H
where
(dl)
to
dl
changing)
needs
the
values.
word
is
with
the
LSEG
however,
subroutine.
be
the
within
the
that
within
is
subroutine
some
form:
when
128
less
value
a
full
is
a
sinqle
fixup
·backwards~
in
record
front
respect
named
R&L
will
access
responsibility.
the
than
LSEG
proqram
bytes
of
word
byte,
itself
from
of
to
a
FOO,
perform
to
l28!
dl
base
In
is
A.
of
as
to
the
the
the
the
the
Note:
translator
if
could
FRAME:
TARGET:
and
R&L
would
(as
above),
(2)
quantities:
(say,
BAZ)
but
(continued)
the
containing
BAZ. LOCATE-86
difference
(location
is
not
into
fixup
this
as
qreater
difference
FRAME:
TARGET:
then
linkaqe
LOCATION
because
a
translator'S
LINK-86
positive
would
to
linkaae)
itself,
the
R&L
~5534,
intentions.
Case
use
perform
to
the
MAS-location
can
of
SAZ
than
SI(FOO)
EI(ARY)
have
where
system
the
3
in
SI(FOO)
EI(ARY)
access
actual
The
ARY,
enforce
plus
~5535r
are
known.--rl~he
had
relative
it
qets
cannot
access
the
above
,-2
verification,
TARGET
calculation
of
and
that
relative
provided
to
maintain
~added~
know
verification
FOO,
the
the
offset)
offset
if
diaqram
(in
front
the
relative
final
that
translator
the
of
to
the
were
not
to
the
of
ARY)!
by
LOCATE-Sfi
MAS-location
offset
offset,
-
(location
all
quantities
had
(possibly
ARY
the
FFFEH
of
within
content
was
R~L
available,
REFERENT
of
of
which
of
specified
chanqinq
BAZ.
FFFEH.
a
neoative
may
thNart
involves
the
ARY
within
is
FOO)
r
enterinq
in
the
ARY
LSEG
the
the
from
the
And
2
or
the
3
20
8086
Object
Module
Formats
version
4.9
~he
works
whether
(3)
REFERENT,
FRAME.
external
R&L
will
the
190'th
constraint
FRAME
of
(4)
in
that
Only
used
after
as
truncation
is
LOCATE'd.
followinq
The
and
For
example,
structure
FRAME:
TARGET:
ensure
miqht
FOO.)
Hibyte
a
full
a
fixup
of
example
the
TARGET
translator
to
ensure
we
STRCT.
SI(FOO)
EI(STRCT)
that
byte
of
be
the
achieved
fixups
word
is
LOCATE'inq
value.
low
byte
(3)
specification
wishes
that
wish
to
The
,99
distance.
STRCT
even
specified
used
will
This
before
to
the
prevents
is
a
to
the
TARGET
reference
translator
from
is
less
if
in
accumulate
value
addinq
case
is
reference
the
than
STRCT
a
primary
of
the
the
where
~primary~
lies
the
may
canonic
lies
access
·forwards~
within
l00'th
specify
FRAME
6553~.
outside
way
the
value
the
hibyte
loss
address
of
accuracy
at
verification
or
·secondary-:
the
byte
the
of
(Note
the
will
of
an
of
an
which
from
specified
in
fixup
Foa
that
canonic
be
correct
offset.
offset
due
an
object
a
an
as
to
this
be
to
21
8086
Object
Module
Formats
Version
4.0
A
object
modules,
defined
object
records
provide
syntactic
CACM,
object~file
sequence
library
module
tmod
lmod
rmod
or
as
a
records.
to
form a module.
information
description
November
RECORD
code
a
collection
=
=
module
= LIBHEO
= tmod I lmod I rmod
=
=
=
file
library
The
about
1977,
sequence
THEADR
LHEADR
RHEADR
v
must
containing
of
followinq
lan~uage
20,
I
{module}.
{module}
sqr;_table
sQr.table
sgr_table
contain
object
In
addition,
how
to
nIl,
library.
1ibtail.
used
ORDER
zero
code
syntax
interpret
p
822
omod.
{data}
{data}
a
seauence
or
more
defined
shows
the
the
herein
-
823.
{component}
It_component}
It_component}
of
modules.
by
the
qiven
record
is
defined
a
valid
semantic
(one
sequence.
modtail.
modtail.
or
A
module
sequence
orderinqs
in
modtail.
more)
is
of
of
rules
The
WIRTH:
omod
sqr.
table
sqor.table
seQ.qrp
o.
component
t~component
component
data
debuq.
content
thread
data
record
def
def
record
=
=
=
=
=
=
=
=
=
=
=
=
RHEADR
seq~grp
seq
{LNAMES}
{data}
THEADR
data
content
LOCSYM I LINNUM
data
FIXUPP.
LIDATA I LEDATA
sqor_table
qrp
REDATA
{OVLDEF}
{SEGDEF}
It_component}
{co~ponent}.
I
debuq.
..
def
TYPDEF
BLKDEF I BLKENO
record
(containinq
record.
thread·def
PUBDEF
{FIXUPP}.
I HIDATA.
{o,:.component}
[REGINT1.
[REGINT1.
{
TYPDEF I EXTDEF
ENOREC.
I
I Ex'rDEF.
I
DEBSYM
only
I PIDATA I
I
I ENOREe.
thread
fields)
PEDATA
I
I
GRPDEF
o·modtail.
}.
o
modtail
22
=
{OVLDEF}
modtail.
808~
mod
tail
libtail
Object
Module
Formats
= [REGINT1
=
LIBNAM
MODEND.
LIBLOC
LIBDIC.
Version
4.9
NOTE:
are
not
section
The
following
1.
A FIXUPP
2.
The
named
3.
All
precede
4.
COMENT
first
or
5.
OVLDEF
and
MODEND
records
order
the
The
character
literals
defininq
debug
by
LNAMES,
records
or
within
records
qroup
records),
of
first
but
the
rules
record
apply:
always
records
the
nearest
SEGDEF, GRPDEF, TYPDEF,
all
records
may
last
a
record
libtail.
may
definitio~s
must
these
be
records
OVLDEF
strinqs
are
Record
have
precedinq
that
appear
app~ar
but
not
equal
record
represented
identifiers
Formats.
refers
as
their
refer
anywhere
in
a
file
either
or
at
both
to
must
be
pointinq
that
to
the
originatinq
THEADR
to
or
immediately
at
the
places.
the
number
same
to
by
are
previous
record.
them.
within
module,
end
as
the
capital
further
and
a
within
(before
The
of
0
the
'root'"
letters
defined
DATA
record.
module
EXTDE~
file,
except
a
after
the
number
components,
-0,
component
part.
above
in
the
the
records
content~def,
the
module
as
seqment
REGINT
of
OVLDEF
and
must
the
and
the
order,
6
•.
As
with
at
the
beqinninq
OVLDEF's
there
can
the
if
not
OVLDEF
of
any)
be
two
records,
a
or
at
REGINT
module
the
the
(after
end
records
REGINT
(before
in
record
SEGDEF's,
the
MODEND
the
same
may
appear
GRPDEF's,
module.
record),
either
and
but
23
8086
Object
Module
Formats
Version
4.0
The
schematic
conventions:
**
* * * * * *
*
* TYP *
*
* * * * * *
***********************1//*********1111***********
TITLE
At
the
with
programs,
products,
abbreviation
abbreviation
an
official
followinq
form.
!~~B~P~~TION.to.
paqes
Here
present
is
SAMPLE,
...
-.
--
..
the.
a
sample,
RECORD
----
- .
(SAMREC)
RECORD
diaqrams
FORMAT
*********************111*********
*
RECORD
REC
LENG'rH
xxH
* * * * *
and
OFFICIAL
top
including
and
should
is
is
the
abbreviation.
various
always
ABBREVIATION
name
translators,
tools
be
6
letters.
NAME
*
*
I I
+----rpt----+
of
the
Record
To
promote
such
used
in
both
*
*
debuqqers,
as
FO~MATS
of
Record
to
illustrate
II I 1***********
NUMBER
Format
uniformity
EDOJ9~
code
Described,
and
and
documentation.
*
*
the
CHK
SUM
among
Formats
the
various
*
*
toqether
various
various
OJED8~,
in
R&L
the
The
'fhe
Each
boxes,
The
wide
bytes
slashes
one
asterisks,
represent
255,
the
or
REC
The
indicatinq
RECORD
The
record,
NAME
BOXES
outlined
boxes,
each.
in
more,
'ryp
second
format
The
the
depending
but
4-byte
first
LENGTH
exclusive
is
entirely
outlined
wide
top
and
with
fields.
byte
which
field
drawn
boxes,
bottom,
four
in
record
in
of
with
entirely
upon
vertical
each
each
the
boxes
with
outlined
represent
content.
record
type
record
first
of -two
asterisks,
with
with
The
bars
contains
the
record
contains
2
fields.
sizes.
represent
~sterisks,
asterisks,
a
variable
wide
in
is.
the
boxes,
the
a
value
number
represent
but
number
top
The
sinqle
with
of
outlined
and
between
of
bytes
narrow
bytes.
two
three
bytes,
with
bottom,
~
and
in
24
8086
Object
Module
Formats
Version
4.0
Any
structure:
inclusive,
field.
byte
set:
translators
strictlY1
all
where
byte
byte,
fields
indicated
some
.1
cond i tional"
The
must
current
NUMBER
A
4-byte
the
(lowest
etc.
REPEATED
Some
that
Similarly,
qiven
field
the
that
remaininq
represent
{
?(rl:.
will
the
above
processors.
first
address),
OR
portions
may
by
the
condition
or d cond"
that
1st
indicates
0l2345f;789ABCDEFGHIJKLMNOPQRSTUVWXYZ
NUMBER
8
bits
CONDITIONAL FIELDS
MrepeatedM
some
byte
bytes
choose
set
of
a
be
portions
is
indicates
contains
are
the
Ascii
to
has
been
field
(least-siqnificant)
the
Record
repeated
or
true;
br
ackets
a
the
interpreted
code
constrain
chosen
represents
next
Format
0
-rPt-
of
a
these
below
number
or
Record
~NAMEd
a
number
of
a
to
8
bits
contain
more
brackets
fields
the
has
the
of
remaininq
as
character
the
McoverM
a
32-bit
are
are
a
times.
below
Format
are
boxes.
between
a
byte
character
stored
stored
field
are
indicated
followinq
bytes
string1
drawn
}.
that
unsiqned
Such
in
in
or
the
present
required
portions
boxes.
0
from
set
the
the
series
by
internal
and
in
each
this
Most
more
inteqer,
first
second
are
only
simIlar
40,
the
by
of
if
CHK
The
the
2's
record.
equals
BI'r
Descriptions
the
bit
drawn
indicate
bit-fields
SUM
last
complement
Therefore,
0.
FIELDS
level.
throuqh
bit
field
boundaries,
of
3-,
of
of
Boxes
them,
1-,
irt
each
the
the
contents
outlined
represent
and
sum
sum
thus
4-bits:
record
(modulo
(modulo
of
in
the
is
a
check
256)
25~)
fields
asterisks,
bytes
byte,
or
of
of
will
words;
represented
*************************
*
*
*
*************************
sum,
all
all
sometimes
but
*
*
*
other
bytes
with
the
which
bytes
in
vertical
vertical
below,
the
qet
contains
in
the
record
down
lines
lines
has
to
3
25
8986
Object
Module
Formats
version
4.0
Every
HEADER
original
encountered
or
MODULE
This
can
translators.
be
***********************///***********
* * * * *
*
REC
*
TYP
*
80H
* * * * *
***********************///***********
module
RECORD.
defining
in
the
END RECOR[.
record
the
first
*
*
*
output
Its
module
module
can
T-MODULE
RECORD
LENG'fH
from
purpose
for
up
also
record,
serve
HEADER
(THEAi5R)
* T
*
MODULE
*
a
translator
is
all
to
line
the
as
and
RECORD
NAME
to
provide
numbers
followinq
the
header
will
*
CHK
* SUI" *
* *
must
be
for
*
have
the
identity
and
T-MODULE
for
a
module
modules
aT-MODULE
local
HEADER
i.e
r
output
of
the
symbols
RECORD
••
it
from
T-MODULE
The
T-MODULE
NAME
NAME
provides
a
name
for
the
T-Module.
8086
Object
Module
Formats
Version
4.0
Every
earlier)
record
(output)
form
from
the
those
LIS86
The
module
or
by
serves
by
LINK-86/LOCATE-86.
another
of
proqram,
L-MODULE
L-MODULE
Lr~ODULE,
HEADER
(LHEADR)
RECORD
***********************///***********
* * * * *
*
REC
*
*
TYP
*
RECORD
LENGTH
*
L-MODULE
*
NAME
*
*
CHK
SU~
*
*
* 82H * * * *
* * * * *
***********************///***********
previously
LOCATE-8~
only
module,
the
NAME
linked
for
NAME
to
the
example).
provides
may
identify
new
modules,
created
have
When
module
a
an
L-MODULE
a
several
requires
by
which
name
by
module
for
(cross)
HEADER
that
modules
a
it
can
the
name,
L-Module.
LINK-86
has
are
be
referred
RECORD.
been
perhaps
processed
linked
(Vl.3
unique
to
or
This
to
(by
27
8~8~
Object
Module
Formats
"er~
ion
4.,
~
R-~ODULE
HEADER
(RHEADR)
RECORD
***********************///*********///*********///***********
* * * * * * *
*
REC
*
TYP
*
*
* 6EH *
RECORD
LENG'fH
*
R-MODULE
*
NAME
*
R-MODULE
*
* ATTR
*
*
R-MOOULE
* INFO
*
* CHK *
*
SUI.,
* *
* * * * * * *
***********************///*********///*********///***********
Every
HEADER
been
module
When
module
modules,
example).
processed
several
R-MODULE
The
module
RECORD.
(output)
attributes
modules
requires
by
which
NAME
R-~ODULE
created
This
and
are
a
name,
it
can
NAME
by
LINK-8~/LOCATE-8~
record
by
LINK-86/LOCATE-86.
gives
linked
be
provides
serves
information
to
perhaps
referred
a
name
to
form
unique
to
for
identify
on
another
(by
the
may
It
memory
from
the
LIB8~
R-Module.
have
a
also
module,
those
an
module
specifies
usaqe
of
proqram,
and
the
*
R-MODULg
that
the
has
the
need.
new
linked
for
R-MODULE
The
attributes,
************************·******~·~~************I'
* * * * * *
*
*
*
* * * *
***********************************************1 I I 1*****
The
Zis
assigned
R-MODULE
MOD
*
OAT
*
~OD
indicates
a
function.
ATTR
and
SEGil\ENT
RECORD
*
COUNT
OAT
ATTR
has
the
field
following
GROUP
*
*.
RECORD
COUNT
*
provides
format:
*
*
*
information
OVERLAY
RECORD
COUNT
*
*
*
* *
sunfield
has
the
followinq
format:
*********************************
* , , I t I
*Z,
* I , I , ,
*********************************
that
Z I
these
These
z,
bits
Z,
l-bit
Z I Z
are
fields
reauired
TYP
I *
have
to
on
OVERLAY
RECORD
OFFSET
*
*
not
be
various
I 1*****
currently
zero.
module
*
*
*
been
28
8086
Object
Module
Formats
Version
4.0
TYP
semantics
TYP=0
TYP=l
TYP=2
TYP=3
The
Segment
The
Definition
The
Overlay
Definition
The
contains
relative
Definition
OVERLAY
is
a
are
defined
The
The
other
The
It
can
The
It
can
fixups
SEGMENT
Definition
GROOP
Records
OVERLAY
Definition
Record
OVERLAY
a
32-bit
to
the
Record
RECORD
2-bit
module
module
than
module
be
module
be
to
RECORD
Records
RECORD
in
RECORD
for
RECORD
unsigned
start
in
COUNT
su~field
as
follows:
is
an
is
a
relocatable
base
is
fixups
a
Position
loaded
is
a
Load-Time
loaded
be
performed.
COUNT
in
COUNT
the
module.
COUNT
Records
the
'Root').
OFFSET
number
of
the
module.
is
zero.
that
absolute
may
anywhere.
anywhere
subfield
the
module.
subfield
subfield
in
the
indicatinq
the
specifies
module.
module.
still
Independent
No
fixups
Locatable
with
indicates
module
subfield
object
This
field
be
perhaps
indicates
indicates
is
the
file,
the
module
Fixups
present.
Code
are
needed.
Module.
some
the
number
(including
a
4-byte
location
of
the
must
module.
base
the
the
first
be
type.
number
of
number
Overlay
field.
in
Overlay
zero
The
of
Group
of
It
bytes,
when
R-MODULE
The
unsiqned
of
memory
fo
rmat:
STATIC
module.
allocated
MAXIMU!"1
seqments
S'rATIC
SIZE)
available
STATIC
INFO
R-MODULE
numbers
space
*****1111*********1
*
STATIC
*
*
SIZE
*
*
INFO
specifyinq
that
*
ft4AXIMUM
*
STATIC
*
SIZE
*
*
field
the
the
contains
different
module
1'1*********1111*********'
*
*
*
*
*
*****1111*********1111*********'
This
to
in
SIZE.
This
memory,
SIZE
SIZE
the
value
and
is
is
the
module
S'fATIC
module.
(By
defaul
only
the
the
the
total
the
mlnlmum
so
SIZE
is
This
t
MAXIJ\1UM
qives
loader
MAXIMUM
size
that
the
value
the
may
STATIC
static
the
maximum
STATIC
maximum
allocate
will
DYNAMIC
STORAGE
111*********1111*****
of
module
must
SIZE.
a
types
need.
the
memory
can
total
be
qreater
SIZE
soace
any
sequence
and
It
sizes
has
I'
of
four
the
1*****
* *
MAXIMUM
*
DYNAMIC
*
STORAGE
*
*
LTL
is
seqments
space
be
loaded.
size
set
needed.
value
that
of
than
e~ual
Dependina
between
or
32-bit
(in
bytes)
followinq
*
*
*
*
in
must
the
equal
to
STATIC
the
be
LTL
to
on
the
29
8086
Object
Module
Formats
Version
4.0
buffer,
value
miqht
equal
is
set
DYNAMIC
for
dynamic
is
zero.
MAXIMUM
be
needed
to
DYNAMIC
equal
STORAGE
DYNAMIC
by
the
STORAGE
to
DYNAMIC
is
the
expansion,
STORAGE
module.
STORAGE·
memory
etc
(By
default
value)
•••
is
This
space
)
the
.value
•
that
at
must
load-time.
maximum
must
MAXIMUM
be
dynamic
be
qreater
DYNAMIC
allocated
The
memory
STORAGE
(for
d&faUl·
that
than
value
or
30