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 translators specify a fixup by qivinq four

data: (l) the place and type of a LOCATION to be fixed up, (2) one

of two possible fixup MODE'S. (3) a TARGET, which is a mem(cy

address to which LOCATION must be made to refer, and (4) a FRAME defining a context within 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

Page 13
Image 13
Intel 121748-001 manual