8086
Object
Module
Formats
version
4.0
pointer
is
present
or
not):
(2)
an
OFFSET
is
merely
the
low
order
word
of
a
pointer
(and
R&L
doesn't
care
if
the
high
order
word
follows
or
not);
(3)
a HIBYTE
is
merely
the
hiqh
order
half
of
an
OFFSET
(and
R&L
doesn't
Nare
if
the
low
order
half
precedes
or
not);
(4)
a
LOBYTE
is
merely
the
low
order
half
of
an
OFFSET
(and
R&L
doesn't
care
if
the
hiQh
order
half
follows
or
not).
A LOCATION
is
specified
-by
2
data:
(1)
which
of
the
above
5
types
the
LOCATION
is,
and
(2)
where
the
LOCATION
is.
(1)
is
specified
by
the
LOC
subfield
of
the
LOCAT
field
of
the
FIXUPP
Record;
(2)
is
specified
by
the
DATA
RECORD
OFFSET
subfield
of
the
LOCAT
field
of
the
FIXUPP
Record.
MODE
-
R&L
supports
2
kinds
of
fixups:
dself-relative~
and
dseqment-
relative-.
Self-relative
fixups
support
the
8-
and
16-bit
offsets
that
are
used
in
the
CALL, JUMP
and
SHORT-JUMP
instru~tions.
Seqment-
relative
fixups
support
all
other
addressinq
modes
of
the
8086.
TARGET -
The
TARGET
is
the
location
in
MAS
beina
referenced.
(More
explicitly,
the
TARGET
may
be
considered
to
be
the
lowest
byte
in
the
object
beinq
referenced.)
A TARGET
is
specified
in
one
of
8
ways.
There
are
4
-primary-
ways,
and
4
~secondary-
ways.
-Each
primary
way
of
specifyinq
a
TARGET
uses
2
data:
an
INDEX-or-FRAME-
NU~BER
'X',
and
a
displacement
'0':
(T0) X
is
a
SEGMEN'r
INDEX.
The
TARGET
is
the
O'th
byte
in
the
LSEG
identified
by
the
INDEX.
(TI)
X
is
a
GROUP
INDEX.
The
TARGET
is
the
O'th
byte
followinq
the
first
byte
in
the
LSEG
in
the
qroup
that
is
eventually
LOCATE'd
lowest
in
MAS.
(T2)
X
is
an
EXTERNAL
INDEX.
The
followinq
the
byte
whose
address
is
External
Name
identified
by
the
INDEX.
TARGET
is
the
(eventually)
O'th
byte
qiven
hy
the
(T3)
X
is
a
FRAME
NUMBER.
The
TARGET
is
the
O'th
byte
in
the
FRAME
identified
by
the
FRAME
NUMBER
(i.e.,
the
address
of
TARGET
is
(X*16)+D).
Each
secondary
way
of
specifyinq
a TARGET
uses
only
1
datum:
the
INDEX-or-FRAME-NUMBER X.
An
implicit
displacement
equal
to
zero
is
assumed:
(T4)
X
is
a
SEGMENT
INDEX.
The
TARGeT
is
the
0'th
(first).byte
in
the
LSEG
identified
by
the
INDgX.
(TS)
X
is
a
GROUP
INDEX.
The
TARGET
is
the
~'th
(first)
byte
in
the
LSEG
in
the
specified
qroup
that
is
eventually
LOCATE'd
lowest
in
~AS.
14