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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 >&#13;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.&#13;</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 >&#13;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.&#13;</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 >&#13;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 >