annotate docs/manual/x54.html.orig @ 455:cad5937314cb

Add operandsizewarning pragma Add operandsizewarning pragma that will raise warnings for certain operands if the operand size could be smaller. (Long branch used instead of short branch, for instance.)
author William Astle <lost@l-w.ca>
date Fri, 16 Feb 2018 22:53:46 -0700
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
455
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
2 <HTML
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
3 ><HEAD
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
4 ><TITLE
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
5 >Object Files</TITLE
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
6 ><META
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
7 NAME="GENERATOR"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
8 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
9 REL="HOME"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
10 TITLE="LW Tool Chain"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
11 HREF="index.html"><LINK
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
12 REL="UP"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
13 TITLE="Output Formats"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
14 HREF="c21.html"><LINK
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
15 REL="PREVIOUS"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
16 TITLE="OS9 Modules"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
17 HREF="x46.html"><LINK
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
18 REL="NEXT"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
19 TITLE="LWASM"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
20 HREF="c62.html"></HEAD
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
21 ><BODY
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
22 CLASS="SECTION"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
23 BGCOLOR="#FFFFFF"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
24 TEXT="#000000"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
25 LINK="#0000FF"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
26 VLINK="#840084"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
27 ALINK="#0000FF"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
28 ><DIV
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
29 CLASS="NAVHEADER"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
30 ><TABLE
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
31 SUMMARY="Header navigation table"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
32 WIDTH="100%"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
33 BORDER="0"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
34 CELLPADDING="0"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
35 CELLSPACING="0"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
36 ><TR
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
37 ><TH
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
38 COLSPAN="3"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
39 ALIGN="center"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
40 >LW Tool Chain</TH
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
41 ></TR
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
42 ><TR
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
43 ><TD
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
44 WIDTH="10%"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
45 ALIGN="left"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
46 VALIGN="bottom"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
47 ><A
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
48 HREF="x46.html"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
49 ACCESSKEY="P"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
50 >Prev</A
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
51 ></TD
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
52 ><TD
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
53 WIDTH="80%"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
54 ALIGN="center"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
55 VALIGN="bottom"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
56 >Chapter 2. Output Formats</TD
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
57 ><TD
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
58 WIDTH="10%"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
59 ALIGN="right"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
60 VALIGN="bottom"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
61 ><A
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
62 HREF="c62.html"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
63 ACCESSKEY="N"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
64 >Next</A
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
65 ></TD
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
66 ></TR
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
67 ></TABLE
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
68 ><HR
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
69 ALIGN="LEFT"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
70 WIDTH="100%"></DIV
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
71 ><DIV
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
72 CLASS="SECTION"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
73 ><H1
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
74 CLASS="SECTION"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
75 ><A
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
76 NAME="AEN54"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
77 >2.7. Object Files</A
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
78 ></H1
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
79 ><P
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
80 >LWASM supports generating a proprietary object file format which is
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
81 described in <A
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
82 HREF="c1068.html"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
83 >Chapter 6</A
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
84 >. LWLINK is then used to link these
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
85 object files into a final binary in any of LWLINK's supported binary
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
86 formats.</P
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
87 ><P
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
88 >Object files also support the concept of sections which are not valid
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
89 for other output types. This allows related code from each object file
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
90 linked to be collapsed together in the final binary.</P
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
91 ><P
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
92 >Object files are very flexible in that they allow references that are not
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
93 known at assembly time to be resolved at link time. However, because the
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
94 addresses of such references are not known at assembly time, there is no way
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
95 for the assembler to deduce that an eight bit addressing mode is possible.
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
96 That means the assember will default to using sixteen bit addressing
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
97 whenever an external or cross-section reference is used.</P
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
98 ><P
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
99 >As of LWASM 2.4, it is possible to force direct page addressing for an
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
100 external reference. Care must be taken to ensure the resulting addresses
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
101 are really in the direct page since the linker does not know what the direct
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
102 page is supposed to be and does not emit errors for byte overflows.</P
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
103 ><P
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
104 >It is also possible to use external references in an eight bit immediate
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
105 mode instruction. In this case, only the low order eight bits will be used.
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
106 Again, no byte overflows will be flagged.</P
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
107 ></DIV
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
108 ><DIV
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
109 CLASS="NAVFOOTER"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
110 ><HR
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
111 ALIGN="LEFT"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
112 WIDTH="100%"><TABLE
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
113 SUMMARY="Footer navigation table"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
114 WIDTH="100%"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
115 BORDER="0"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
116 CELLPADDING="0"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
117 CELLSPACING="0"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
118 ><TR
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
119 ><TD
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
120 WIDTH="33%"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
121 ALIGN="left"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
122 VALIGN="top"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
123 ><A
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
124 HREF="x46.html"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
125 ACCESSKEY="P"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
126 >Prev</A
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
127 ></TD
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
128 ><TD
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
129 WIDTH="34%"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
130 ALIGN="center"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
131 VALIGN="top"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
132 ><A
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
133 HREF="index.html"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
134 ACCESSKEY="H"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
135 >Home</A
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
136 ></TD
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
137 ><TD
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
138 WIDTH="33%"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
139 ALIGN="right"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
140 VALIGN="top"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
141 ><A
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
142 HREF="c62.html"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
143 ACCESSKEY="N"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
144 >Next</A
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
145 ></TD
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
146 ></TR
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
147 ><TR
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
148 ><TD
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
149 WIDTH="33%"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
150 ALIGN="left"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
151 VALIGN="top"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
152 >OS9 Modules</TD
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
153 ><TD
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
154 WIDTH="34%"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
155 ALIGN="center"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
156 VALIGN="top"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
157 ><A
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
158 HREF="c21.html"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
159 ACCESSKEY="U"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
160 >Up</A
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
161 ></TD
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
162 ><TD
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
163 WIDTH="33%"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
164 ALIGN="right"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
165 VALIGN="top"
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
166 >LWASM</TD
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
167 ></TR
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
168 ></TABLE
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
169 ></DIV
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
170 ></BODY
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
171 ></HTML
cad5937314cb Add operandsizewarning pragma
William Astle <lost@l-w.ca>
parents:
diff changeset
172 >