You can create/change the current section being assembled using a number of directive styles.

##### Syntax

> SECT "name"
> PSECT "name"
> DSECT "name"
> USECT "name"
> CSECT "name"
> ASECT "name"

These directives enable you to create/change sections with your own names.

The SECT directive creates/changes to an untyped section called name.

The PSECT directive creates/changes to a CODE typed section called name.

The DSECT directive creates/changes to a DATA typed section called name.

The USECT directive creates/changes to a BSS typed section called name.

The CSECT directive creates/changes to a CONST typed section called name.

The ASECT directive creates/changes to an ABS typed section called name.

##### IAR Style Syntax

> ASEG [start [(alignment)] ]
> RSEG name [:type][(alignment)]

The ASEG directive creates an ABSOLUTE typed section, sets the location counter to the optional start value and aligns the section at the optional alignment. The start value is an assemble time expression. The alignment value is an assemble time expression that is the power of 2 upon which to align the section - so an alignment value of 1 will cause the section to be aligned on even byte locations.

The RSEG directive creates a named section called name with an optional type and aligns the section at the optional alignment. The section can be one of CODE, DATA, BSS, CONST, ABS or UNTYPED. The alignment value is specified the same as per ASEG.

##### Syntax

> ORG [expr]

The ORG directive sets the current location counter to the assemble time expression expr. This expression is relative to the currently defined section. If no section has been defined then the ABSOLUTE typed section .abs is defined making the expression an absolute one.

##### Syntax

> SEGEND
> .BREAK
> .KEEP
> .INIT "name"

The SEGEND and .BREAK directives start a new fragment within the current section. A fragment is set of instructions that the linker will elect to include in it's output if a reference is made to one of the instructions in the fragment. If no reference is made to a fragment then the linker will not include that fragment in the output.

The .KEEP directive instructs the linker not to throw away the current section. Without this directive if a section is not referenced then the linker will not include it in the output.

The .INIT directive places a copy of the section denoted by name into the current section. This directive can be used to enable initialised data sections to be copied from read only memory into writable memory.