6.1.3. `Multisection' support for the BIN format.
-------------------------------------------------
The `bin' format allows the use of multiple sections, of arbitrary
names, besides the "known" `.text', `.data', and `.bss' names.
* Sections may be designated `progbits' or `nobits'. Default is
`progbits' (except `.bss', which defaults to `nobits', of course).
* Sections can be aligned at a specified boundary following the
previous section with `align=', or at an arbitrary byte-granular
position with `start='.
* Sections can be given a virtual start address, which will be used
for the calculation of all memory references within that section
with `vstart='.
* Sections can be ordered using `follows='`<section>' or
`vfollows='`<section>' as an alternative to specifying an explicit
start address.
* Arguments to `org', `start', `vstart', and `align=' are critical
expressions. See *Note Section 3.8::. E.g. `align=(1 <<
ALIGN_SHIFT)' - `ALIGN_SHIFT' must be defined before it is used
here.
* Any code which comes before an explicit `SECTION' directive is
directed by default into the `.text' section.
* If an `ORG' statement is not given, `ORG 0' is used by default.
* The `.bss' section will be placed after the last `progbits'
section, unless `start=', `vstart=', `follows=', or `vfollows='
has been specified.
* All sections are aligned on dword boundaries, unless a different
alignment has been specified.
* Sections may not overlap.
* Nasm creates the `section.<secname>.start' for each section, which
may be used in your code.