Mercurial > hg > index.cgi
annotate docs/manual/x591.html @ 577:e49d24f4a9a5
Correct bug in the object file output code leading to stack corruption
It turns out leaving a pointer to a stack allocated temporary in a
persistent data structure is not conducive to correct program operation.
Undo the export check setup in the object file output sequence so a
pointer to stack allocated memory is not left hanging when the function
returns. This seems to correct at least one mysterious crash bug, and
possibly others.
Thanks to Boisy Pitre for reporting the crash bug that led to this
discovery, as well as a previous crash bug that likely has the same
root cause.
Additional thanks to Ciaran Anscomb whose debugger wielding wizardry
revealed the exact location of this particular bit of unbrilliance.
author | William Astle <lost@l-w.ca> |
---|---|
date | Sat, 03 Aug 2024 14:30:06 -0600 |
parents | fc072f6cde09 |
children |
rev | line source |
---|---|
565
fc072f6cde09
Update documentation to reflect includebin offset/length feature
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"> |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
2 <HTML |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
3 ><HEAD |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
4 ><TITLE |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
5 >Structures</TITLE |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
6 ><META |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
7 NAME="GENERATOR" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
8 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
9 REL="HOME" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
10 TITLE="LW Tool Chain" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
11 HREF="index.html"><LINK |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
12 REL="UP" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
13 TITLE="LWASM" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
14 HREF="c62.html"><LINK |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
15 REL="PREVIOUS" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
16 TITLE="Macros" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
17 HREF="x568.html"><LINK |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
18 REL="NEXT" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
19 TITLE="Object Files and Sections" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
20 HREF="x612.html"></HEAD |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
21 ><BODY |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
22 CLASS="SECTION" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
23 BGCOLOR="#FFFFFF" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
24 TEXT="#000000" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
25 LINK="#0000FF" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
26 VLINK="#840084" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
27 ALINK="#0000FF" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
28 ><DIV |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
29 CLASS="NAVHEADER" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
30 ><TABLE |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
31 SUMMARY="Header navigation table" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
32 WIDTH="100%" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
33 BORDER="0" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
34 CELLPADDING="0" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
35 CELLSPACING="0" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
36 ><TR |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
37 ><TH |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
38 COLSPAN="3" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
39 ALIGN="center" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
40 >LW Tool Chain</TH |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
41 ></TR |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
42 ><TR |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
43 ><TD |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
44 WIDTH="10%" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
45 ALIGN="left" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
46 VALIGN="bottom" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
47 ><A |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
48 HREF="x568.html" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
49 ACCESSKEY="P" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
50 >Prev</A |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
51 ></TD |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
52 ><TD |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
53 WIDTH="80%" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
54 ALIGN="center" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
55 VALIGN="bottom" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
56 >Chapter 3. LWASM</TD |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
57 ><TD |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
58 WIDTH="10%" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
59 ALIGN="right" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
60 VALIGN="bottom" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
61 ><A |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
62 HREF="x612.html" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
63 ACCESSKEY="N" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
64 >Next</A |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
65 ></TD |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
66 ></TR |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
67 ></TABLE |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
68 ><HR |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
69 ALIGN="LEFT" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
70 WIDTH="100%"></DIV |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
71 ><DIV |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
72 CLASS="SECTION" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
73 ><H1 |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
74 CLASS="SECTION" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
75 ><A |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
76 NAME="AEN591" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
77 >3.8. Structures</A |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
78 ></H1 |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
79 ><P |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
80 > Structures are used to group related data in a fixed structure. A structure |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
81 consists a number of fields, defined in sequential order and which take up |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
82 specified size. The assembler does not enforce any means of access within a |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
83 structure; it assumes that whatever you are doing, you intended to do. |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
84 There are two pseudo ops that are used for defining structures. </P |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
85 ><P |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
86 ></P |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
87 ><DIV |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
88 CLASS="VARIABLELIST" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
89 ><DL |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
90 ><DT |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
91 ><CODE |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
92 CLASS="PARAMETER" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
93 >structname</CODE |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
94 > STRUCT</DT |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
95 ><DD |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
96 ><P |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
97 > This directive is used to begin the definition of a structure with name |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
98 <CODE |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
99 CLASS="PARAMETER" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
100 >structname</CODE |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
101 >. Subsequent statements all form part of |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
102 the structure definition until the end of the structure is declared. </P |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
103 ></DD |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
104 ><DT |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
105 >ENDSTRUCT, ENDS</DT |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
106 ><DD |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
107 ><P |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
108 >This directive ends the definition of the structure. ENDSTRUCT is the |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
109 preferred form. Prior to version 3.0 of LWASM, ENDS was used to end a |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
110 section instead of a structure.</P |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
111 ></DD |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
112 ></DL |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
113 ></DIV |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
114 ><P |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
115 > Within a structure definition, only reservation pseudo ops are permitted. |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
116 Anything else will cause an assembly error.</P |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
117 ><P |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
118 > Once a structure is defined, you can reserve an area of memory in the |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
119 same structure by using the structure name as the opcode. Structures can |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
120 also contain fields that are themselves structures. See the example |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
121 below.</P |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
122 ><PRE |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
123 CLASS="PROGRAMLISTING" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
124 >tstruct2 STRUCT |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
125 f1 rmb 1 |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
126 f2 rmb 1 |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
127 ENDSTRUCT |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
128 |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
129 tstruct STRUCT |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
130 field1 rmb 2 |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
131 field2 rmb 3 |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
132 field3 tstruct2 |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
133 ENDSTRUCT |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
134 |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
135 ORG $2000 |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
136 var1 tstruct |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
137 var2 tstruct2</PRE |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
138 ><P |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
139 >Fields are referenced using a dot (.) as a separator. To refer to the |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
140 generic offset within a structure, use the structure name to the left of the |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
141 dot. If referring to a field within an actual variable, use the variable's |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
142 symbol name to the left of the dot.</P |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
143 ><P |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
144 >You can also refer to the actual size of a structure (or a variable |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
145 declared as a structure) using the special symbol sizeof{structname} where |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
146 structname will be the name of the structure or the name of the |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
147 variable.</P |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
148 ><P |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
149 >Essentially, structures are a shortcut for defining a vast number of |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
150 symbols. When a structure is defined, the assembler creates symbols for the |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
151 various fields in the form structname.fieldname as well as the appropriate |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
152 sizeof{structname} symbol. When a variable is declared as a structure, the |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
153 assembler does the same thing using the name of the variable. You will see |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
154 these symbols in the symbol table when the assembler is instructed to |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
155 provide a listing. For instance, the above listing will create the |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
156 following symbols (symbol values in parentheses): tstruct2.f1 (0), |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
157 tstruct2.f2 (1), sizeof{tstruct2} (2), tstruct.field1 (0), tstruct.field2 |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
158 (2), tstruct.field3 (5), tstruct.field3.f1 (5), tstruct.field3.f2 (6), |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
159 sizeof{tstruct.field3} (2), sizeof{tstruct} (7), var1 {$2000}, var1.field1 |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
160 {$2000}, var1.field2 {$2002}, var1.field3 {$2005}, var1.field3.f1 {$2005}, |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
161 var1.field3.f2 {$2006}, sizeof(var1.field3} (2), sizeof{var1} (7), var2 |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
162 ($2007), var2.f1 ($2007), var2.f2 ($2008), sizeof{var2} (2). </P |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
163 ></DIV |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
164 ><DIV |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
165 CLASS="NAVFOOTER" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
166 ><HR |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
167 ALIGN="LEFT" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
168 WIDTH="100%"><TABLE |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
169 SUMMARY="Footer navigation table" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
170 WIDTH="100%" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
171 BORDER="0" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
172 CELLPADDING="0" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
173 CELLSPACING="0" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
174 ><TR |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
175 ><TD |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
176 WIDTH="33%" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
177 ALIGN="left" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
178 VALIGN="top" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
179 ><A |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
180 HREF="x568.html" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
181 ACCESSKEY="P" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
182 >Prev</A |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
183 ></TD |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
184 ><TD |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
185 WIDTH="34%" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
186 ALIGN="center" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
187 VALIGN="top" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
188 ><A |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
189 HREF="index.html" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
190 ACCESSKEY="H" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
191 >Home</A |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
192 ></TD |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
193 ><TD |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
194 WIDTH="33%" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
195 ALIGN="right" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
196 VALIGN="top" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
197 ><A |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
198 HREF="x612.html" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
199 ACCESSKEY="N" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
200 >Next</A |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
201 ></TD |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
202 ></TR |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
203 ><TR |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
204 ><TD |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
205 WIDTH="33%" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
206 ALIGN="left" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
207 VALIGN="top" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
208 >Macros</TD |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
209 ><TD |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
210 WIDTH="34%" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
211 ALIGN="center" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
212 VALIGN="top" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
213 ><A |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
214 HREF="c62.html" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
215 ACCESSKEY="U" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
216 >Up</A |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
217 ></TD |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
218 ><TD |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
219 WIDTH="33%" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
220 ALIGN="right" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
221 VALIGN="top" |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
222 >Object Files and Sections</TD |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
223 ></TR |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
224 ></TABLE |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
225 ></DIV |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
226 ></BODY |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
227 ></HTML |
fc072f6cde09
Update documentation to reflect includebin offset/length feature
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
228 > |