ZHCU947E June 2015 – January 2023
汇编到命名段
.sect "section name "
.sect " section name " [,{RO|RW}] [,{ALLOC|NOALLOC}]
.sect 指令用于定义命名段,它可作为默认的 .text 段和 .data 段使用。.sect 指令用于将 段名 设置为当前段;后面的行将汇编到 段名 段。
段名 用于标识段,段名必须用双引号引起来。段名可以包含 段名 :子段名 形式的子段名。有关段的更多信息,请参阅GUID-F317E356-FBE6-4802-ABC0-AF125934B28D.html#GUID-F317E356-FBE6-4802-ABC0-AF125934B28D。
该段可标记为只读 (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 000005E0 ZERO A0
6 00000004 008425E0 ZERO A1
7
8 **********************************************
9 ** Begin assembling into vars section. **
10 **********************************************
11 00000000 .sect "vars"
12 00000000 4048F5C3 pi .float 3.14
13 00000004 000007D0 max .int 2000
14 00000008 00000001 min .int 1
15
16 **********************************************
17 ** Resume assembling into .text section. **
18 **********************************************
19 00000008 .text
20 00000008 010000A8 MVK 1,A2
21 0000000c 018000A8 MVK 1,A3
22
23 **********************************************
24 ** Resume assembling into vars section. **
25 **********************************************
26 0000000c .sect "vars"
27 0000000c 00000019 count .short 25