808~ Object ~odule Formats

Version 4.9

<----

in

OATA

Record

---->

<---

in

FIXUP Record

--->

 

 

+------+n

+

+------

+------

+

 

 

 

<---

 

 

or

+n...

------+

 

<null>

Case

1

+------+

+-------+

 

 

 

 

 

 

+------q

+-~----

+------

+

+------

+

----~~+

<---

Case

2

q

 

 

+n

 

+------

+

 

 

 

 

 

 

 

 

 

+------

+

or

 

 

 

 

 

<---

Case

3

q

 

 

 

 

 

 

+------

+

 

 

 

 

 

 

 

 

 

Case 1 illustrates the situation where a fixup is specified in

a"secondary" way. No explicit displacement 10' is provided in the FIXUP Record, so arithmetic must be done in the LOCATION itself, in the DATA Record. As tha diagram shows, the LOCATION may be a byte or a word. (If LOCATION is a POINTER, arithmetic is on each half separately, so the above diagram applies separately to each half of

a POINTER.) In Case 1, the value(s) in LOCATION are considered to be non-negative numbers ("+n"', and are considered to be equivalent to a specification of a displacement '0'; thus the R&L access verification incorporates the value "+n".

Case 2 illustrates the situation where a fixup is specified in a "primary" wa:'. An explicit displacement '0' is provided in the FIXUP Record. This displacement is considered to be a non-neqative

number ("+n-). When all arithmetic required by the fixup is complete, the resultant value (in the FIXUP Record) is checked for validity by R&L, and then, finally, that result is added (modulo 256 or modulo 65536) to the oriqinalcontent of LOCATION C'q"). The value d g " may be considered as non-negative, or as siqned 2's complement; R&L doesn't care because there is no checkinq in this final staqe of the fixup.

Case 3 is the same as Case 2, except that the displacement '0', instead of beinq restricted to non-negative numbers in the range {0:65535}, may represent signed (2's complement) numbers in the ranqe {-1,048,576:1,048,575}. (Note: initially, this case will not be supported. It is desiqned into the formats for completeness: it allows support, with R&L access verification, of TARGET'S specified in a "primary" way, with negative displacefl\ents 10 1 . )

Here are some cases ~here a "primary" specification of a TARGET is necessary or desirable:

First, yet another definition: a -REFERENT" is a memory

location, with respect to which a TARGE'r is positioned. This is best made clear by an example: in the specification

TARGET: EI(STRUCT) ,24

the TARGET is the 24'th byte after the location named "STRUCT"; the REFERENT is the location named "STRUCT" itself .

19

Page 19
Image 19
Intel 121748-001 manual Fixup Record, Case +------+, Oata, Target Eistruct ,24