Mercurial > hg > index.cgi
comparison docs/manual.docbook.sgml @ 143:42a7a16a058f
Documented the addition of data/code address streams for OS9 modules.
author | lost@l-w.ca |
---|---|
date | Sat, 20 Aug 2011 00:02:55 -0600 |
parents | d90ab253471e |
children | a26b045c4e18 |
comparison
equal
deleted
inserted
replaced
142:697bc543368c | 143:42a7a16a058f |
---|---|
112 | 112 |
113 </para> | 113 </para> |
114 | 114 |
115 <para> | 115 <para> |
116 | 116 |
117 It is also critical to understand that unlike many OS9 assemblers, LWASM | 117 As of version 4.5, LWASM also implements the standard data/code address |
118 does NOT maintain a separate data address counter. Thus, you must define | 118 streams for OS9 modules. That means that between MOD and EMOD, any RMB, |
119 all your data offsets and so on outside of the mod/emod segment. It is, | 119 RMD, RMQ, or equivalent directives will move the data address ahead and |
120 therefore, likely that source code targeted at other assemblers will require | 120 leave the code address unmodified. Outside of an actual module, both the |
121 edits to build correctly. | 121 code and data addresses are moved ahead equally. That last bit is critical |
122 | 122 to understand because it means any directives that follow an EMOD directive |
123 may have different results than other assemblers. | |
124 | |
125 </para> | |
126 <para> | |
127 | |
128 Additionally, within a module body, the ORG directive sets only the data | |
129 address, not the code address. However, outside a module body, ORG sets both | |
130 addresses. | |
131 | |
132 </para> | |
133 | |
134 <para> | |
135 Both code and data addresses are reset to 0 by the MOD directive. | |
123 </para> | 136 </para> |
124 | 137 |
125 <para> | 138 <para> |
126 | 139 |
127 LWLINK does not, yet, have the ability to create OS9 modules from object | 140 LWLINK does not, yet, have the ability to create OS9 modules from object |