808~
Object
Module
Formats
Version
4.0
CONCEPTUAL
FRAMEWORK
for
FIXUP's
A
"Fixup"
is
some
modification
to
object
code,
requested
by
a
translator,
performed
by
the
R&L
system,
achievinq
address
bindinq.
(see
Appendix
4
for
Examples)
(Note)
This
definition
of
"fixup-
accurately
represents
the
viewpoint
maintained
by
the
R&L
system.
Nevertheless.
the
R&L
system
can
be
used
to
achieve
modifications
of
object
code
(i.e.,
dfixups")
that
do
not
conform
to
this
definition.
For
example.
the
bindinq
of
code
to
either
of
hardware
floatinq
point
or
software
floatinq
point
subroutines,
is
a
modification
to
an
operation
code,
where
the
operation
code
is
treated
as
if
it
were
an
address.
The
above
definition
of
"fixup"
is
not
intended
to
disallow
or
disparaqe
object
code
modifications
in
the
wider
sense.
,End
of
Note)
8086
and/or
8089
data:
(l)
the
place
and
of
two
possible
fixup
address
to
which
LOCATION
defining
a
context
within
translators
specify
a
fixup
by
qivinq
four
type
of
a LOCATION
to
be
fixed
up,
(2)
one
MODE'S.
(3)
a TARGET,
which
is
a
mem(cy
must
be
made
to
refer,
and
(4)
a
FRAME
which
the
reference
takes
place.
LOCATION
There
are
5
types
of
LOCATION: a POINTER, a BASE,
an
OFFSET,
a HIBYTE,
and
a LOBYTE:
+----+----+----+----+
Pointer:
+----+----+----+----+
+----+----+
Base:
I ,
+----+----+
+----+----+
Offset:
I I
+----+----+
+----+
Hibyte:
I I
+----+
+----+
Lobyte:
I I
+----+
The
vertical
alignment
of
this
diaqram
illustrates
4
points
(remember
that
the
hiqh
orner
byte
of
a
word
in
q~8~
me~ory
is
the
byte
"Nith
the
hiqher
address):
(1)
a
B.~SE
is
merely
the
hi1h
':)rder
word
of
a
pointer
(and
R~L
~oesn't
care
if
the
low
order
word
of
the
13