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
用户命名的段是由用户 创建的段。其使用方式与默认 .text、.data 和 .bss 段相同,但具有独特名称的每个段在汇编期间都会区分开。
例如,重复使用 .text 指令可在目标文件中生成单一 .text 段。此 .text 段在存储器中是作为一个单元分配的。假设您希望链接器将一部分可执行代码(例如初始化例程)放在与其余 .text 不同的位置,如果您将此段代码汇编到用户命名的段,它会与 .text 分别汇编,您可以使用链接器将其分配到存储器中的其他位置。您也可以汇编与 .data 段分开的初始化数据,并为与 .bss 段分开的未初始化变量保留空间。
以下指令可用于创建用户命名的段:
这些指令的语法为:
symbol | .usect "section name", size in bytes[, alignment[, bank offset] ] |
.sect "section name" |
段的数量上限为 232-1 (4294967295)。
section name 参数是段的名称。对于 .usect 和 .sect 指令,段名可引用子段;请参阅节 2.4.6了解详情。
每次您用新名称调用这些指令之一,就创建了一个新的用户命名段。每次您用已有名称调用这些指令之一,汇编器会在具有该名称的段中继续汇编代码或数据(或保留空间)。不能在不同指令中使用相同名称。也就是说,您无法使用 .usect 指令创建段,更不用说通过 .sect 使用该段。