Tandy 1000 MS-DOS Reference Manual page 271

Hide thumbs Also See for 1000 MS-DOS:
Table of Contents

Advertisement

r-
I :
,.---
I
!
I
_
r
,
,
I
'
,....,
I
' . ..- -
l
!
L'
I
I
L
~
.---.
I
,
I
I
Chapter 12 I Link Technical Reference
If you want memory Combine Type to be loaded as the last seg-
ment of your program, you can use this method. Add MEMORY
between SEGMENT and 'MEMORY' in the E segment line
above. Note, however, that these segments are loaded last only
because you imposed this control on them, not because of any
inherent capability in the linker or assembler operations.
Segment Addresses
The 8088 must be able to address all segments in memory. Any
20-bit number can be addressed. The 8088 represents these
numbers as two 16-bit numbers (for example, hex F:12). The F is
a canonical frame address, and the 12 is the offset.
The canonical frame address is the largest frame address or seg-
ment address that can contain the segment. An offset is the seg-
ment's location, offset from the beginning of the canonical frame.
The linker recognizes a segment by its canonical frame address
and its offset within the frame .
To convert the address F:12 to a 20-bit number, shift the frame
address left four bits and add the offset as shown in this
example:
FO
+
12
1 ' ,
I , I
F:12=
102
(20-bit address)
r-
I
I
!
r-
I
,
"
I
.---.
l :
,
l.
I
,
How the Linker Assigns Addresses
To assign addresses to segments, the linker orders each segment
by segment and class name. On the basis of the alignment and
size of each segment (assuming the segments are contiguous),
the linker assigns a frame address and an offset to each seg-
ment. This information is used for resolving relocatable refer-
ences. The addresses start at 0:0.
253

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents