Indicate to the assembler the start of a code section.
[Syntax]
Symbol field
|
Mnemonic field
|
Operand field
|
Comment field
|
[section-name]
|
.CSEG
|
[relocation-attribute]
|
[; comment]
|
[Function]
- | The .CSEG directive indicates to the assembler the start of a code section. |
- | All instructions described following the .CSEG directive belong to the code section until it comes across a section definition directives. |
[Description]
- | This directive defines a portion that has a coherent set of functions in a program.
This directive is valid until another section definition directive appears. |
- | When an instruction that outputs a label or an object code is used at the beginning of a source program before this directive appears, a relocatable code section is generated as a default section.
In this case, the section name will be ".text", and the relocation attribute is set to "TEXT". |
- | .CSEG directive can specify the start address of a section by specifying AT in the operand field..
The section start address can also be specified through the .ORG directive.
In this case, the section name will be "the specified section name" + "_AT" + "specified address (hexadecimal notation in uppercase letters without prefix (0x or 0X) or suffix (h or H)". |
- | The following shows the relocation attributes that can be specified through .CSEG. |
Table 5.16 | Relocation Attributes of .CSEG |
|
|
|
|
|
CALLT0
|
CALLT0
|
.callt0
|
Allocates a section between addresses 0x00080 and 0x000BF in the code flash areaNote 2 with the start address set to an even address.
|
2
|
TEXT
|
TEXT
|
.text
|
Allocates a section between addresses 0x000C0 and 0x0FFFF in the code flash areaNote 2 with the start address set to an even address.
|
1
|
TEXTF
|
TEXTF
|
.textf
|
Allocates a section between addresses 0x000C0 and 0xEFFFF in the code flash areaNote 2 with the start address set to an even address.
|
1
|
TEXTF_UNIT64KP
|
TEXTF_UNIT64KP
|
.textf_unit64kp
|
Allocates a section with the start address set to an even address so that it does not extend across a boundary of 64 Kbytes - 1Note 3.
|
2Note 4
|
CONST
|
CONST
|
.const
|
Allocates a section in the mirror source areaNote 2 with the start address set to an even address so that it does not extend across a boundary of 64 Kbytes - 1Note 3.
|
2
|
CONSTF
|
CONSTF
|
.constf
|
Allocates a section in the code flash areaNote 2 with the start address set to an even address so that it does not extend across a boundary of 64 Kbytes - 1Note 3.
|
2
|
ATΔaddress
|
AT absolute- expressionNote 5
|
None
|
Allocates a section at a specified address.
|
1 (fixed)
|
OPT_BYTE
|
OPT_BYTE
|
.option_byteNote 6
|
This attribute is dedicated to the user option byte setting and on-chip debugging settingNote 7.
|
1 (fixed)
|
SECUR_ID
|
SECUR_ID
|
.security_idNote 6
|
This attribute is dedicated to the security ID settingNote 7.
Machine-language instructions cannot be written in this section.
|
1 (fixed)
|
FLASH_SECUR_ID
|
FLASH_SECUR_ID
|
.flash_security_idNote 6
|
This attribute is dedicated to the flash programmer security ID settingNote 7.
Machine-language instructions cannot be written in this section.
|
1 (fixed)
|
Note 1. | The alignment condition can be modified through the .ALIGN directive. |
Note 2. | For the code flash area, mirror area, RAM area, and saddr area, see the user's manual of the device. For the RAM area, note that only the on-chip RAM allocated to an address range from 0xF0000 to 0xFFFFF is supported. |
Note 3. | Allocation beyond a boundary of 64 Kbytes - 1 is prohibited by default. |
Note 4. | To guarantee correct access to 16-bit data, the alignment condition value is set to "2". |
Note 5. | If the specified absolute expression is illegal or its value is outside the range from 0x00000 to 0xFFFFF, an error will occur. |
Note 6. | This is a special section and the section name must not be changed (the name is fixed). |
Note 7. | For addresses where the option byte, on-chip debugging, and security ID settings are allocated, see the user's manual of the device. |
- | When a section definition does not include a section name, the assembler gives a separate default section name for each relocation attribute.
The following shows the section names given by the assembler. |
|
|
CALLT0
|
.callt
|
TEXT
|
.text
|
TEXTF
|
.textf
|
TEXTF_UNIT64KP
|
.textf_unit64kp
|
CONST
|
.const
|
CONSTF
|
.constf
|
ATΔaddress
|
.text_AT start-address
|
OPT_BYTE
|
.option_byteNote
|
SECUR_ID
|
.security_idNote
|
FLASH_SECUR_ID
|
.flash_security_idNote
|
Note | This is a special section and the section name must not be changed (the name is fixed). |
A section having one of the above names has the corresponding relocation attribute shown above and no different relocation attribute can be assigned.
- | When a section definition does not include a relocation attribute, relocation attribute "TEXT" is assumed. |
- | The following characters are usable in section names. |
- | Alphanumeric characters (0-9, a-z, A-Z) |
- | Special characters (@, _, .) |
[Example]
To define section ".text" having the TEXT attribute.
To define section ".unit" having the TEXTF_UNIT64KP attribute.
unit .CSEG TEXTF_UNIT64KP
MOV A, !LABEL
|
To define section "EX" having the AT attribute with address 0x00200 specified.
The section name will be set to "EX_AT200".
EX .CSEG AT 0x00200
.DS 2
|
To define a section for the option byte setting.