ZHCUAV7Z september 1995 – march 2023 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , AM1705 , AM1707 , AM1802 , AM1806 , AM1808 , AM1810 , AM5K2E04 , OMAP-L132 , OMAP-L137 , OMAP-L138 , SM470R1B1M-HT , TMS470R1A288 , TMS470R1A384 , TMS470R1A64 , TMS470R1B1M , TMS470R1B512 , TMS470R1B768
汇编到命名段
.sect "section name "
.sect " section name " [,{RO|RW}] [,{ALLOC|NOALLOC}]
.sect 指令用于定义命名段,它可作为默认的 .text 段和 .data 段使用。.sect 指令用于将 段名 设置为当前段;后面的行将汇编到 段名 段。
段名 用于标识段,段名必须用双引号引起来。段名可以包含 段名 :子段名 形式的子段名。有关段的更多信息,请参阅Chapter12。
该段可标记为只读 (RO) 或读写 (RW)。另外,这些段可标记为分配 (ALLOC) 或未分配 (NOALLOC)。这些属性可按任意顺序指定,但每组中只能选择一个属性。RO 与 RW 冲突,ALLOC 与 NOALLOC 冲突。如果指定了冲突属性,汇编器会生成一个错误,例如:
"t.asm", ERROR! at line 1:[E0000] Attribute RO cannot be combined with attr RW
.sect "illegal_sect",RO,RW
本示例定义了两个具有特殊作用的段,Sym_Defs 和 Vars,并将代码汇编到其中。
1 ******************************************************
2 ** Begin assembling into .text section. **
3 ******************************************************
4 00000000 .text
5 00000000 E3A00078 MOV R0, #78h
6 00000004 E2801078 ADD R1, R0, #78h
7 ******************************************************
8 ** Begin assembling into Sym_Defs section. **
9 ******************************************************
10 00000000 .sect "Sym_Defs"
11 00000000 3D4CCCCD .float 0.05 ; Assembled into Sym_Defs
12 00000004 000000AA X: .word 0AAh ; Assembled into Sym_Defs
13 00000008 E2833028 ADD R3, R3, #28h ; Assembled into Sym_Defs
14 ******************************************************
15 ** Begin assembling into Vars section. **
16 ******************************************************
17 00000000 .sect "Vars"
18 00000010 WORD_LEN .set 16
19 00000020 DWORD_LEN .set WORD_LEN * 2
20 00000008 BYTE_LEN .set WORD_LEN / 2
21 ******************************************************
22 ** Resume assembling into .text section. **
23 ******************************************************
24 00000008 .text
25 00000008 E2802042 ADD R2, R0, #42h ; Assembled into .text
26 0000000c 03 .byte 3, 4 ; Assembled into .text
0000000d 04
27 ******************************************************
28 ** Resume assembling into Vars section. **
29 ******************************************************
30 00000000 .sect "Vars"
31 00000000 000D0000 .field 13, WORD_LEN
32 00000000 000D0A00 .field 0Ah, BYTE_LEN
33 00000004 00000008 .field 10q, DWORD_LEN