Intel 121748-001 User Manual

8086
RELOCATABLE
OBJECT
MODULE
FORMATS
An
Intel Technical Specification
Order
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
-primary­a
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
Loading...
+ 92 hidden pages