Mercurial > hg > index.cgi
comparison docs/manual/x250.html @ 394:fc166b3bbae3
Update manual for recent additions.
Document recent feature additions in the manual.
Thanks to Erik G <erik@6809.org> for the text for most of these manual
additions.
author | William Astle <lost@l-w.ca> |
---|---|
date | Wed, 15 Jul 2015 19:54:57 -0600 |
parents | |
children | 566660ef3b4d |
comparison
equal
deleted
inserted
replaced
393:f2decd9b276d | 394:fc166b3bbae3 |
---|---|
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> | |
2 <HTML | |
3 ><HEAD | |
4 ><TITLE | |
5 >Assembler Directives</TITLE | |
6 ><META | |
7 NAME="GENERATOR" | |
8 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK | |
9 REL="HOME" | |
10 TITLE="LW Tool Chain" | |
11 HREF="index.html"><LINK | |
12 REL="UP" | |
13 TITLE="LWASM" | |
14 HREF="c62.html"><LINK | |
15 REL="PREVIOUS" | |
16 TITLE="Numbers and Expressions" | |
17 HREF="x242.html"><LINK | |
18 REL="NEXT" | |
19 TITLE="Macros" | |
20 HREF="x551.html"></HEAD | |
21 ><BODY | |
22 CLASS="SECTION" | |
23 BGCOLOR="#FFFFFF" | |
24 TEXT="#000000" | |
25 LINK="#0000FF" | |
26 VLINK="#840084" | |
27 ALINK="#0000FF" | |
28 ><DIV | |
29 CLASS="NAVHEADER" | |
30 ><TABLE | |
31 SUMMARY="Header navigation table" | |
32 WIDTH="100%" | |
33 BORDER="0" | |
34 CELLPADDING="0" | |
35 CELLSPACING="0" | |
36 ><TR | |
37 ><TH | |
38 COLSPAN="3" | |
39 ALIGN="center" | |
40 >LW Tool Chain</TH | |
41 ></TR | |
42 ><TR | |
43 ><TD | |
44 WIDTH="10%" | |
45 ALIGN="left" | |
46 VALIGN="bottom" | |
47 ><A | |
48 HREF="x242.html" | |
49 ACCESSKEY="P" | |
50 >Prev</A | |
51 ></TD | |
52 ><TD | |
53 WIDTH="80%" | |
54 ALIGN="center" | |
55 VALIGN="bottom" | |
56 >Chapter 3. LWASM</TD | |
57 ><TD | |
58 WIDTH="10%" | |
59 ALIGN="right" | |
60 VALIGN="bottom" | |
61 ><A | |
62 HREF="x551.html" | |
63 ACCESSKEY="N" | |
64 >Next</A | |
65 ></TD | |
66 ></TR | |
67 ></TABLE | |
68 ><HR | |
69 ALIGN="LEFT" | |
70 WIDTH="100%"></DIV | |
71 ><DIV | |
72 CLASS="SECTION" | |
73 ><H1 | |
74 CLASS="SECTION" | |
75 ><A | |
76 NAME="AEN250" | |
77 >3.6. Assembler Directives</A | |
78 ></H1 | |
79 ><P | |
80 >Various directives can be used to control the behaviour of the | |
81 assembler or to include non-code/data in the resulting output. Those directives | |
82 that are not described in detail in other sections of this document are | |
83 described below.</P | |
84 ><DIV | |
85 CLASS="SECTION" | |
86 ><H2 | |
87 CLASS="SECTION" | |
88 ><A | |
89 NAME="AEN253" | |
90 >3.6.1. Data Directives</A | |
91 ></H2 | |
92 ><P | |
93 ></P | |
94 ><DIV | |
95 CLASS="VARIABLELIST" | |
96 ><DL | |
97 ><DT | |
98 >FCB <CODE | |
99 CLASS="PARAMETER" | |
100 >expr[,...]</CODE | |
101 >, .DB <CODE | |
102 CLASS="PARAMETER" | |
103 >expr[,...]</CODE | |
104 >, .BYTE <CODE | |
105 CLASS="PARAMETER" | |
106 >expr[,...]</CODE | |
107 ></DT | |
108 ><DD | |
109 ><P | |
110 >Include one or more constant bytes (separated by commas) in the output.</P | |
111 ></DD | |
112 ><DT | |
113 >FDB <CODE | |
114 CLASS="PARAMETER" | |
115 >expr[,...]</CODE | |
116 >, .DW <CODE | |
117 CLASS="PARAMETER" | |
118 >expr[,...]</CODE | |
119 >, .WORD <CODE | |
120 CLASS="PARAMETER" | |
121 >expr[,...]</CODE | |
122 ></DT | |
123 ><DD | |
124 ><P | |
125 >Include one or more words (separated by commas) in the output.</P | |
126 ></DD | |
127 ><DT | |
128 >FQB <CODE | |
129 CLASS="PARAMETER" | |
130 >expr[,...]</CODE | |
131 >, .QUAD <CODE | |
132 CLASS="PARAMETER" | |
133 >expr[,...]</CODE | |
134 >, .4BYTE <CODE | |
135 CLASS="PARAMETER" | |
136 >expr[,...]</CODE | |
137 ></DT | |
138 ><DD | |
139 ><P | |
140 >Include one or more double words (separated by commas) in the output.</P | |
141 ></DD | |
142 ><DT | |
143 >FCC <CODE | |
144 CLASS="PARAMETER" | |
145 >string</CODE | |
146 >, .ASCII <CODE | |
147 CLASS="PARAMETER" | |
148 >string</CODE | |
149 >, .STR <CODE | |
150 CLASS="PARAMETER" | |
151 >string</CODE | |
152 ></DT | |
153 ><DD | |
154 ><P | |
155 >Include a string of text in the output. The first character of the operand | |
156 is the delimiter which must appear as the last character and cannot appear | |
157 within the string. The string is included with no modifications></P | |
158 ></DD | |
159 ><DT | |
160 >FCN <CODE | |
161 CLASS="PARAMETER" | |
162 >string</CODE | |
163 >, .ASCIZ <CODE | |
164 CLASS="PARAMETER" | |
165 >string</CODE | |
166 >, .STRZ <CODE | |
167 CLASS="PARAMETER" | |
168 >string</CODE | |
169 ></DT | |
170 ><DD | |
171 ><P | |
172 >Include a NUL terminated string of text in the output. The first character of | |
173 the operand is the delimiter which must appear as the last character and | |
174 cannot appear within the string. A NUL byte is automatically appended to | |
175 the string.</P | |
176 ></DD | |
177 ><DT | |
178 >FCS <CODE | |
179 CLASS="PARAMETER" | |
180 >string</CODE | |
181 >, .ASCIS <CODE | |
182 CLASS="PARAMETER" | |
183 >string</CODE | |
184 >, .STRS <CODE | |
185 CLASS="PARAMETER" | |
186 >string</CODE | |
187 ></DT | |
188 ><DD | |
189 ><P | |
190 >Include a string of text in the output with bit 7 of the final byte set. The | |
191 first character of the operand is the delimiter which must appear as the last | |
192 character and cannot appear within the string.</P | |
193 ></DD | |
194 ><DT | |
195 >ZMB <CODE | |
196 CLASS="PARAMETER" | |
197 >expr</CODE | |
198 ></DT | |
199 ><DD | |
200 ><P | |
201 >Include a number of NUL bytes in the output. The number must be fully resolvable | |
202 during pass 1 of assembly so no forward or external references are permitted.</P | |
203 ></DD | |
204 ><DT | |
205 >ZMD <CODE | |
206 CLASS="PARAMETER" | |
207 >expr</CODE | |
208 ></DT | |
209 ><DD | |
210 ><P | |
211 >Include a number of zero words in the output. The number must be fully | |
212 resolvable during pass 1 of assembly so no forward or external references are | |
213 permitted.</P | |
214 ></DD | |
215 ><DT | |
216 >ZMQ <CODE | |
217 CLASS="PARAMETER" | |
218 >expr<CODE | |
219 CLASS="PARAMETER" | |
220 ></CODE | |
221 ></CODE | |
222 ></DT | |
223 ><DD | |
224 ><P | |
225 >Include a number of zero double-words in the output. The number must be fully | |
226 resolvable during pass 1 of assembly so no forward or external references are | |
227 permitted.</P | |
228 ></DD | |
229 ><DT | |
230 >RMB <CODE | |
231 CLASS="PARAMETER" | |
232 >expr</CODE | |
233 >, .BLKB <CODE | |
234 CLASS="PARAMETER" | |
235 >expr</CODE | |
236 >, .DS <CODE | |
237 CLASS="PARAMETER" | |
238 >expr</CODE | |
239 >, .RS <CODE | |
240 CLASS="PARAMETER" | |
241 >expr</CODE | |
242 ></DT | |
243 ><DD | |
244 ><P | |
245 >Reserve a number of bytes in the output. The number must be fully resolvable | |
246 during pass 1 of assembly so no forward or external references are permitted. | |
247 The value of the bytes is undefined.</P | |
248 ></DD | |
249 ><DT | |
250 >RMD <CODE | |
251 CLASS="PARAMETER" | |
252 >expr</CODE | |
253 ></DT | |
254 ><DD | |
255 ><P | |
256 >Reserve a number of words in the output. The number must be fully | |
257 resolvable during pass 1 of assembly so no forward or external references are | |
258 permitted. The value of the words is undefined.</P | |
259 ></DD | |
260 ><DT | |
261 >RMQ <CODE | |
262 CLASS="PARAMETER" | |
263 >expr</CODE | |
264 ></DT | |
265 ><DD | |
266 ><P | |
267 >Reserve a number of double-words in the output. The number must be fully | |
268 resolvable during pass 1 of assembly so no forward or external references are | |
269 permitted. The value of the double-words is undefined.</P | |
270 ></DD | |
271 ><DT | |
272 >INCLUDEBIN <CODE | |
273 CLASS="PARAMETER" | |
274 >filename</CODE | |
275 ></DT | |
276 ><DD | |
277 ><P | |
278 >Treat the contents of <CODE | |
279 CLASS="PARAMETER" | |
280 >filename</CODE | |
281 > as a string of bytes to | |
282 be included literally at the current assembly point. This has the same effect | |
283 as converting the file contents to a series of FCB statements and including | |
284 those at the current assembly point.</P | |
285 ><P | |
286 > If <CODE | |
287 CLASS="PARAMETER" | |
288 >filename</CODE | |
289 > beings with a /, the file name | |
290 will be taken as absolute. Otherwise, the current directory will be | |
291 searched followed by the search path in the order specified.</P | |
292 ><P | |
293 > Please note that absolute path detection including drive letters will | |
294 not function correctly on Windows platforms. Non-absolute inclusion will | |
295 work, however.</P | |
296 ></DD | |
297 ><DT | |
298 >FILL <CODE | |
299 CLASS="PARAMETER" | |
300 >size</CODE | |
301 >,<CODE | |
302 CLASS="PARAMETER" | |
303 >byte</CODE | |
304 ></DT | |
305 ><DD | |
306 ><P | |
307 >Insert <CODE | |
308 CLASS="PARAMETER" | |
309 >size</CODE | |
310 > bytes of <CODE | |
311 CLASS="PARAMETER" | |
312 >byte</CODE | |
313 >.</P | |
314 ></DD | |
315 ></DL | |
316 ></DIV | |
317 ></DIV | |
318 ><DIV | |
319 CLASS="SECTION" | |
320 ><H2 | |
321 CLASS="SECTION" | |
322 ><A | |
323 NAME="AEN364" | |
324 >3.6.2. Address Definition</A | |
325 ></H2 | |
326 ><P | |
327 >The directives in this section all control the addresses of symbols | |
328 or the assembly process itself.</P | |
329 ><P | |
330 ></P | |
331 ><DIV | |
332 CLASS="VARIABLELIST" | |
333 ><DL | |
334 ><DT | |
335 >ORG <CODE | |
336 CLASS="PARAMETER" | |
337 >expr</CODE | |
338 ></DT | |
339 ><DD | |
340 ><P | |
341 >Set the assembly address. The address must be fully resolvable on the | |
342 first pass so no external or forward references are permitted. ORG is not | |
343 permitted within sections when outputting to object files. For target formats | |
344 that include address information (decb, hex, srec, and ihex), an ORG | |
345 directive will re-start the address sequence within the output. When using | |
346 the raw target format, ORG is used only to determine the addresses of symbols.</P | |
347 ></DD | |
348 ><DT | |
349 >REORG</DT | |
350 ><DD | |
351 ><P | |
352 >Sets the assembly address to the value it had immediately prior to the | |
353 previous ORG statement. It is used to continue assembly after some | |
354 specification that required an additional ORG. This directive is primarily | |
355 intended for MACRO-80c compatibility. Consider using alternatives in | |
356 modern code.</P | |
357 ></DD | |
358 ><DT | |
359 ><CODE | |
360 CLASS="PARAMETER" | |
361 >sym</CODE | |
362 > EQU <CODE | |
363 CLASS="PARAMETER" | |
364 >expr</CODE | |
365 >, <CODE | |
366 CLASS="PARAMETER" | |
367 >sym</CODE | |
368 > = <CODE | |
369 CLASS="PARAMETER" | |
370 >expr</CODE | |
371 ></DT | |
372 ><DD | |
373 ><P | |
374 >Define the value of <CODE | |
375 CLASS="PARAMETER" | |
376 >sym</CODE | |
377 > to be <CODE | |
378 CLASS="PARAMETER" | |
379 >expr</CODE | |
380 >.</P | |
381 ></DD | |
382 ><DT | |
383 ><CODE | |
384 CLASS="PARAMETER" | |
385 >sym</CODE | |
386 > SET <CODE | |
387 CLASS="PARAMETER" | |
388 >expr</CODE | |
389 ></DT | |
390 ><DD | |
391 ><P | |
392 >Define the value of <CODE | |
393 CLASS="PARAMETER" | |
394 >sym</CODE | |
395 > to be <CODE | |
396 CLASS="PARAMETER" | |
397 >expr</CODE | |
398 >. | |
399 Unlike EQU, SET permits symbols to be defined multiple times as long as SET | |
400 is used for all instances. Use of the symbol before the first SET statement | |
401 that sets its value is undefined.</P | |
402 ></DD | |
403 ><DT | |
404 >SETDP <CODE | |
405 CLASS="PARAMETER" | |
406 >expr</CODE | |
407 ></DT | |
408 ><DD | |
409 ><P | |
410 >Inform the assembler that it can assume the DP register contains | |
411 <CODE | |
412 CLASS="PARAMETER" | |
413 >expr</CODE | |
414 >. This directive is only advice to the assembler | |
415 to determine whether an address is in the direct page and has no effect | |
416 on the contents of the DP register. The value must be fully resolved during | |
417 the first assembly pass because it affects the sizes of subsequent instructions.</P | |
418 ><P | |
419 >This directive has no effect in the object file target.</P | |
420 ></DD | |
421 ><DT | |
422 >ALIGN <CODE | |
423 CLASS="PARAMETER" | |
424 >expr</CODE | |
425 >[,<CODE | |
426 CLASS="PARAMETER" | |
427 >value</CODE | |
428 >]</DT | |
429 ><DD | |
430 ><P | |
431 >Force the current assembly address to be a multiple of | |
432 <CODE | |
433 CLASS="PARAMETER" | |
434 >expr</CODE | |
435 >. If <CODE | |
436 CLASS="PARAMETER" | |
437 >value</CODE | |
438 > is not | |
439 specified, a series of NUL bytes is output to force the alignment, if | |
440 required. Otherwise, the low order 8 bits of <CODE | |
441 CLASS="PARAMETER" | |
442 >value</CODE | |
443 > | |
444 will be used as the fill. The alignment value must be fully resolved on the | |
445 first pass because it affects the addresses of subsquent instructions. | |
446 However, <CODE | |
447 CLASS="PARAMETER" | |
448 >value</CODE | |
449 > may include forward references; as | |
450 long as it resolves to a constant for the second pass, the value will be | |
451 accepted.</P | |
452 ><P | |
453 >Unless <CODE | |
454 CLASS="PARAMETER" | |
455 >value</CODE | |
456 > is specified as something like $12, | |
457 this directive is not suitable for inclusion in the middle of actual code. | |
458 The default padding value is $00 which is intended to be used within data | |
459 blocks. </P | |
460 ></DD | |
461 ></DL | |
462 ></DIV | |
463 ></DIV | |
464 ><DIV | |
465 CLASS="SECTION" | |
466 ><H2 | |
467 CLASS="SECTION" | |
468 ><A | |
469 NAME="AEN415" | |
470 >3.6.3. Conditional Assembly</A | |
471 ></H2 | |
472 ><P | |
473 >Portions of the source code can be excluded or included based on conditions | |
474 known at assembly time. Conditionals can be nested arbitrarily deeply. The | |
475 directives associated with conditional assembly are described in this section.</P | |
476 ><P | |
477 >All conditionals must be fully bracketed. That is, every conditional | |
478 statement must eventually be followed by an ENDC at the same level of nesting.</P | |
479 ><P | |
480 >Conditional expressions are only evaluated on the first assembly pass. | |
481 It is not possible to game the assembly process by having a conditional | |
482 change its value between assembly passes. Due to the underlying architecture | |
483 of LWASM, there is no possible utility to IFP1 and IFP2, nor can they, as of LWASM 3.0, actually | |
484 be implemented meaningfully. Thus there is not and never will | |
485 be any equivalent of IFP1 or IFP2 as provided by other assemblers. Use of those opcodes | |
486 will throw a warning and be ignored.</P | |
487 ><P | |
488 >It is important to note that if a conditional does not resolve to a constant | |
489 during the first parsing pass, an error will be thrown. This is unavoidable because the assembler | |
490 must make a decision about which source to include and which source to exclude at this stage. | |
491 Thus, expressions that work normally elsewhere will not work for conditions.</P | |
492 ><P | |
493 ></P | |
494 ><DIV | |
495 CLASS="VARIABLELIST" | |
496 ><DL | |
497 ><DT | |
498 >IFEQ <CODE | |
499 CLASS="PARAMETER" | |
500 >expr</CODE | |
501 ></DT | |
502 ><DD | |
503 ><P | |
504 >If <CODE | |
505 CLASS="PARAMETER" | |
506 >expr</CODE | |
507 > evaluates to zero, the conditional | |
508 will be considered true.</P | |
509 ></DD | |
510 ><DT | |
511 >IFNE <CODE | |
512 CLASS="PARAMETER" | |
513 >expr</CODE | |
514 >, IF <CODE | |
515 CLASS="PARAMETER" | |
516 >expr</CODE | |
517 ></DT | |
518 ><DD | |
519 ><P | |
520 >If <CODE | |
521 CLASS="PARAMETER" | |
522 >expr</CODE | |
523 > evaluates to a non-zero value, the conditional | |
524 will be considered true.</P | |
525 ></DD | |
526 ><DT | |
527 >IFGT <CODE | |
528 CLASS="PARAMETER" | |
529 >expr</CODE | |
530 ></DT | |
531 ><DD | |
532 ><P | |
533 >If <CODE | |
534 CLASS="PARAMETER" | |
535 >expr</CODE | |
536 > evaluates to a value greater than zero, the conditional | |
537 will be considered true.</P | |
538 ></DD | |
539 ><DT | |
540 >IFGE <CODE | |
541 CLASS="PARAMETER" | |
542 >expr</CODE | |
543 ></DT | |
544 ><DD | |
545 ><P | |
546 >If <CODE | |
547 CLASS="PARAMETER" | |
548 >expr</CODE | |
549 > evaluates to a value greater than or equal to zero, the conditional | |
550 will be considered true.</P | |
551 ></DD | |
552 ><DT | |
553 >IFLT <CODE | |
554 CLASS="PARAMETER" | |
555 >expr</CODE | |
556 ></DT | |
557 ><DD | |
558 ><P | |
559 >If <CODE | |
560 CLASS="PARAMETER" | |
561 >expr</CODE | |
562 > evaluates to a value less than zero, the conditional | |
563 will be considered true.</P | |
564 ></DD | |
565 ><DT | |
566 >IFLE <CODE | |
567 CLASS="PARAMETER" | |
568 >expr</CODE | |
569 ></DT | |
570 ><DD | |
571 ><P | |
572 >If <CODE | |
573 CLASS="PARAMETER" | |
574 >expr</CODE | |
575 > evaluates to a value less than or equal to zero , the conditional | |
576 will be considered true.</P | |
577 ></DD | |
578 ><DT | |
579 >IFDEF <CODE | |
580 CLASS="PARAMETER" | |
581 >sym</CODE | |
582 ></DT | |
583 ><DD | |
584 ><P | |
585 >If <CODE | |
586 CLASS="PARAMETER" | |
587 >sym</CODE | |
588 > is defined at this point in the assembly | |
589 process, the conditional | |
590 will be considered true.</P | |
591 ></DD | |
592 ><DT | |
593 >IFPRAGMA <CODE | |
594 CLASS="PARAMETER" | |
595 >pragma</CODE | |
596 ></DT | |
597 ><DD | |
598 ><P | |
599 >If <CODE | |
600 CLASS="PARAMETER" | |
601 >pragma</CODE | |
602 > is in effect, the condition will be considered true.</P | |
603 ></DD | |
604 ><DT | |
605 >IFNDEF <CODE | |
606 CLASS="PARAMETER" | |
607 >sym</CODE | |
608 ></DT | |
609 ><DD | |
610 ><P | |
611 >If <CODE | |
612 CLASS="PARAMETER" | |
613 >sym</CODE | |
614 > is not defined at this point in the assembly | |
615 process, the conditional | |
616 will be considered true.</P | |
617 ></DD | |
618 ><DT | |
619 >ELSE</DT | |
620 ><DD | |
621 ><P | |
622 >If the preceding conditional at the same level of nesting was false, the | |
623 statements following will be assembled. If the preceding conditional at | |
624 the same level was true, the statements following will not be assembled. | |
625 Note that the preceding conditional might have been another ELSE statement | |
626 although this behaviour is not guaranteed to be supported in future versions | |
627 of LWASM.</P | |
628 ></DD | |
629 ><DT | |
630 >ENDC</DT | |
631 ><DD | |
632 ><P | |
633 >This directive marks the end of a conditional construct. Every conditional | |
634 construct must end with an ENDC directive.</P | |
635 ></DD | |
636 ></DL | |
637 ></DIV | |
638 ></DIV | |
639 ><DIV | |
640 CLASS="SECTION" | |
641 ><H2 | |
642 CLASS="SECTION" | |
643 ><A | |
644 NAME="AEN486" | |
645 >3.6.4. OS9 Target Directives</A | |
646 ></H2 | |
647 ><P | |
648 >This section includes directives that apply solely to the OS9 | |
649 target.</P | |
650 ><P | |
651 ></P | |
652 ><DIV | |
653 CLASS="VARIABLELIST" | |
654 ><DL | |
655 ><DT | |
656 >OS9 <CODE | |
657 CLASS="PARAMETER" | |
658 >syscall</CODE | |
659 ></DT | |
660 ><DD | |
661 ><P | |
662 > This directive generates a call to the specified system call. <CODE | |
663 CLASS="PARAMETER" | |
664 >syscall</CODE | |
665 > may be an arbitrary expression. </P | |
666 ></DD | |
667 ><DT | |
668 >MOD <CODE | |
669 CLASS="PARAMETER" | |
670 >size</CODE | |
671 >,<CODE | |
672 CLASS="PARAMETER" | |
673 >name</CODE | |
674 >,<CODE | |
675 CLASS="PARAMETER" | |
676 >type</CODE | |
677 >,<CODE | |
678 CLASS="PARAMETER" | |
679 >flags</CODE | |
680 >,<CODE | |
681 CLASS="PARAMETER" | |
682 >execoff</CODE | |
683 >,<CODE | |
684 CLASS="PARAMETER" | |
685 >datasize</CODE | |
686 ></DT | |
687 ><DD | |
688 ><P | |
689 > This tells LWASM that the beginning of the actual module is here. It will | |
690 generate a module header based on the parameters specified. It will also | |
691 begin calcuating the module CRC. </P | |
692 ><P | |
693 > The precise meaning of the various parameters is beyond the scope of this | |
694 document since it is not a tutorial on OS9 module programming. </P | |
695 ></DD | |
696 ><DT | |
697 >EMOD</DT | |
698 ><DD | |
699 ><P | |
700 > This marks the end of a module and causes LWASM to emit the calculated CRC | |
701 for the module. </P | |
702 ></DD | |
703 ></DL | |
704 ></DIV | |
705 ></DIV | |
706 ><DIV | |
707 CLASS="SECTION" | |
708 ><H2 | |
709 CLASS="SECTION" | |
710 ><A | |
711 NAME="AEN511" | |
712 >3.6.5. Miscelaneous Directives</A | |
713 ></H2 | |
714 ><P | |
715 >This section includes directives that do not fit into the other | |
716 categories.</P | |
717 ><P | |
718 ></P | |
719 ><DIV | |
720 CLASS="VARIABLELIST" | |
721 ><DL | |
722 ><DT | |
723 >INCLUDE <CODE | |
724 CLASS="PARAMETER" | |
725 >filename</CODE | |
726 >, USE <CODE | |
727 CLASS="PARAMETER" | |
728 >filename</CODE | |
729 ></DT | |
730 ><DD | |
731 ><P | |
732 > Include the contents of <CODE | |
733 CLASS="PARAMETER" | |
734 >filename</CODE | |
735 > at | |
736 this point in the assembly as though it were a part of the file currently | |
737 being processed. Note that if whitespace appears in the name of the file, | |
738 you must enclose <CODE | |
739 CLASS="PARAMETER" | |
740 >filename</CODE | |
741 > in quotes.</P | |
742 ><P | |
743 >Note that the USE variation is provided only for compatibility with other | |
744 assemblers. It is recommended to use the INCLUDE variation.</P | |
745 ><P | |
746 >If <CODE | |
747 CLASS="PARAMETER" | |
748 >filename</CODE | |
749 > begins with a "/", it is | |
750 interpreted as an absolute path. If it does not, the search path will be used | |
751 to find the file. First, the directory containing the file that contains this | |
752 directive. (Includes within an included file are relative to the included file, | |
753 not the file that included it.) If the file is not found there, the include path | |
754 is searched. If it is still not found, an error will be thrown. Note that the | |
755 current directory as understood by your shell or operating system is not searched.</P | |
756 ></DD | |
757 ><DT | |
758 >END <CODE | |
759 CLASS="PARAMETER" | |
760 >[expr]</CODE | |
761 ></DT | |
762 ><DD | |
763 ><P | |
764 >This directive causes the assembler to stop assembling immediately as though | |
765 it ran out of input. For the DECB target only, <CODE | |
766 CLASS="PARAMETER" | |
767 >expr</CODE | |
768 > | |
769 can be used to set the execution address of the resulting binary. For all | |
770 other targets, specifying <CODE | |
771 CLASS="PARAMETER" | |
772 >expr</CODE | |
773 > will cause an error.</P | |
774 ></DD | |
775 ><DT | |
776 >ERROR <CODE | |
777 CLASS="PARAMETER" | |
778 >string</CODE | |
779 ></DT | |
780 ><DD | |
781 ><P | |
782 >Causes a custom error message to be printed at this line. This will cause | |
783 assembly to fail. This directive is most useful inside conditional constructs | |
784 to cause assembly to fail if some condition that is known bad happens. Everything | |
785 from the directive to the end of the line is considered the error message.</P | |
786 ></DD | |
787 ><DT | |
788 >WARNING <CODE | |
789 CLASS="PARAMETER" | |
790 >string</CODE | |
791 ></DT | |
792 ><DD | |
793 ><P | |
794 >Causes a custom warning message to be printed at this line. This will not cause | |
795 assembly to fail. This directive is most useful inside conditional constructs | |
796 or include files to alert the programmer to a deprecated feature being used | |
797 or some other condition that may cause trouble later, but which may, in fact, | |
798 not cause any trouble.</P | |
799 ></DD | |
800 ><DT | |
801 >.MODULE <CODE | |
802 CLASS="PARAMETER" | |
803 >string</CODE | |
804 ></DT | |
805 ><DD | |
806 ><P | |
807 >This directive is ignored for most output targets. If the output target | |
808 supports encoding a module name into it, <CODE | |
809 CLASS="PARAMETER" | |
810 >string</CODE | |
811 > | |
812 will be used as the module name.</P | |
813 ><P | |
814 >As of version 3.0, no supported output targets support this directive.</P | |
815 ></DD | |
816 ></DL | |
817 ></DIV | |
818 ></DIV | |
819 ></DIV | |
820 ><DIV | |
821 CLASS="NAVFOOTER" | |
822 ><HR | |
823 ALIGN="LEFT" | |
824 WIDTH="100%"><TABLE | |
825 SUMMARY="Footer navigation table" | |
826 WIDTH="100%" | |
827 BORDER="0" | |
828 CELLPADDING="0" | |
829 CELLSPACING="0" | |
830 ><TR | |
831 ><TD | |
832 WIDTH="33%" | |
833 ALIGN="left" | |
834 VALIGN="top" | |
835 ><A | |
836 HREF="x242.html" | |
837 ACCESSKEY="P" | |
838 >Prev</A | |
839 ></TD | |
840 ><TD | |
841 WIDTH="34%" | |
842 ALIGN="center" | |
843 VALIGN="top" | |
844 ><A | |
845 HREF="index.html" | |
846 ACCESSKEY="H" | |
847 >Home</A | |
848 ></TD | |
849 ><TD | |
850 WIDTH="33%" | |
851 ALIGN="right" | |
852 VALIGN="top" | |
853 ><A | |
854 HREF="x551.html" | |
855 ACCESSKEY="N" | |
856 >Next</A | |
857 ></TD | |
858 ></TR | |
859 ><TR | |
860 ><TD | |
861 WIDTH="33%" | |
862 ALIGN="left" | |
863 VALIGN="top" | |
864 >Numbers and Expressions</TD | |
865 ><TD | |
866 WIDTH="34%" | |
867 ALIGN="center" | |
868 VALIGN="top" | |
869 ><A | |
870 HREF="c62.html" | |
871 ACCESSKEY="U" | |
872 >Up</A | |
873 ></TD | |
874 ><TD | |
875 WIDTH="33%" | |
876 ALIGN="right" | |
877 VALIGN="top" | |
878 >Macros</TD | |
879 ></TR | |
880 ></TABLE | |
881 ></DIV | |
882 ></BODY | |
883 ></HTML | |
884 > |