Using Sections Directives

Figure 2-2 shows how you can build sections incrementally, using the sections directives to swap back and forth between the different sections. You can use sections directives to begin assembling into a section for the first time, or to continue assembling into a section that already contains code. In the latter case, the assembler simply appends the new code to the code that is already in the section.

The format in Figure 2-2 is a listing file. Figure 2-2 shows how the SPCs are modified during assembly. A line in a listing file has four fields:

Field 1 contains the source code line counter.
Field 2 contains the section program counter.
Field 3 contains the object code.
Field 4 contains the original source statement.

See Section 4.12 for more information on interpreting the fields in a source listing.

Figure 2-2 Using Sections Directives Exampleusesecdirs_pnu118.png

As Figure 2-3 shows, the file in Figure 2-2 creates five sections:

.text contains six 32-bit words of object code.
.data contains seven 32-bit words of initialized data.
vectors is a user-named section created with the .sect directive; it contains two 32-bit words of initialized data.
.bss reserves ten bytes in memory.
newvars is a user-named section created with the .usect directive; it reserves eight bytes in memory.

The second column shows the object code that is assembled into these sections; the first column shows the source statements that generated the object code.

Figure 2-3 Object Code Generated by the File in Figure 2-2objcodech2_pnu118.png