808~ Object Module Formats

Version 4.~

Oiaqrams land 2 show valid fixups. In diaqram 3, the TARGET is not in the defined PSEG. A warning will be qiven by LOCATE. In diagram 4, if the choice for PSEG is chanqed from SICA) to SICS) then the fixup can be made, as in diagram 5, if the displacement is qreater than 32K a ·clever- fixup, shown in diaqram 5 as an exclamatory arrow, will be- qenerated.

R & L attempts to inform the us~r of any erroneous self-relative

references. The symbol beinq referenced must be within the defined PSEG independent of the bias value to be applied:

EXAMPLES: JMP SYM + 10

or

JMP SYM - 2

The symbol SYM will have an offset within its containinq LSEG. The values 10 and -2 are biases. If the offset of SYM is added to the bias in LOCATION and the result overflows, it is not known whether this is due to the offset of SYM beinq qreater than 64K or whether the bias (perhaps

aneqative or positive numher) caused the overflow. If the bias caused the overflow then the reference is good accordinq to R & L, if not, then SYM is not in the defined PSEG and the reference is invalid.

The solution to this problem is to maintain the offset of SYM independent of the bias. If the TARGE'r is specified in a primary way

(e.q., "TARGE'r: SICS) ,d-. then the offset will be maintained in the fixup record itself and will be added to LOCATION only at LOCATE time. If the TARGET is specified in a secondary way (e.q., dTARGET: SI(8)"), then the offset must be maintained in LOCATION itself, and R & L can ~o less checking on the correctness of the fixup.

If the LOCATION is an OFFSET (i . e . , a full word, not just a byte) and the bias is known to be zero, then a fixup tarqet of: TARGET: SI(B) could be used instead of TARGET: SICS) ,dl, without sacrificinq any correctness checkinq.

1" 2

Page 102
Image 102
Intel 121748-001 manual Examples JMP SYM +