|
|
1.1 root 1:
2:
3: memory allocation Technical Information memory allocation
4:
5:
6:
7:
8: The following diagram shows how COHERENT allocates memory.
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64: COHERENT Lexicon Page 1
65:
66:
67:
68:
69: memory allocation Technical Information memory allocation
70:
71:
72:
73: Data Segment (maximum size 64 kilobytes)
74:
75:
76:
77: ZDDDDDDDDDDDDDDDDDDDDDDD?
78: | |
79: | ARENA AND |
80: | FREE MEMORY |
81: | |
82: CDDDDDDDDDDDDDDDDDDDDDDD4 ^ SP starts here
83: | |
84: | STACK |
85: | |
86: CDDDDDDDDDDDDDDDDDDDDDDD4
87: | |
88: | UNITIALIZED DATA |
89: | (bssi) |
90: | |
91: CDDDDDDDDDDDDDDDDDDDDDDD4
92: | |
93: | PRIVATE DATA (prvd) |
94: | |
95: CDDDDDDDDDDDDDDDDDDDDDDD4
96: | |
97: | SHARED DATA (shrd) |
98: | |
99: @DDDDDDDDDDDDDDDDDDDDDDDY ^ DS ES SS point here
100:
101:
102:
103: Code Segment (maximum size 64 kilobytes)
104:
105: ZDDDDDDDDDDDDDDDDDDDDDDD?
106: | |
107: | CODE |
108: | |
109: CDDDDDDDDDDDDDDDDDDDDDDD4
110: | |
111: | RUNTIME STARTUP |
112: | |
113: @DDDDDDDDDDDDDDDDDDDDDDDY ^ CS points here
114:
115:
116: Note that COHERENT can relocate the code and data segments at its
117: own convience and merely repoint the required segment registers.
118:
119: The stack _d_e_s_c_e_n_d_s from the highest address in its space toward
120: the static data area; new arguments are placed on the stack in
121: its lowest address. Everything from the top of the stack space
122: to the end of the data segment is free to accept dynamically
123: allocated data.
124:
125: The size of the stack cannot be altered while a program is run-
126: ning. By default, the runtime startup sets the stack size to two
127: kilobytes (2,048 bytes) Note, however, that a highly recursive
128:
129:
130: COHERENT Lexicon Page 2
131:
132:
133:
134:
135: memory allocation Technical Information memory allocation
136:
137:
138:
139: function may cause the stack to grow larger than two kilobytes so
140: that it overwrites other data areas. This will cause your
141: program to work incorrectly. To reset the amount of stack
142: allocated to a program, use the command fixstack.
143:
144: ***** See Also *****
145:
146: data formats, fixstack, technical information
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196: COHERENT Lexicon Page 3
197:
198:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.