ZHCU947E June 2015 – January 2023
创建加载时地址标签
.labelsymbol
.label 指令用于定义一个特殊符号,引用当前段内的加载时地址,而不是运行时地址。由汇编器创建的大部分段都有可重定位地址。汇编器汇编每个段,就好像它是从 0 开始的一样,而链接器会将其重新定位到其加载和运行时的地址。
对于某些应用,需要在一个地址加载段,然后在另一个 地址运行。例如,您可能需要将对性能至关重要的代码块加载到较慢的存储器以节省空间,然后将该代码移至高速存储器中运行。这样的段在链接时分配两个地址:一个加载地址和一个运行地址。该段中定义的所有标签会重新定位为引用运行时地址,以便在代码运行时正确引用该段(例如,分支)。有关运行时重新定位的更多信息,请参阅GUID-0E218719-C852-4F99-8D70-2A319EC0B8EB.html#GUID-0E218719-C852-4F99-8D70-2A319EC0B8EB。
.label 指令用于创建一个特殊标签来引用加载时 地址。此功能主要用于为重新定位该段的代码指定段的加载位置。
此示例展示了加载时地址标签的用法。
sect ".examp"
.label examp_load ; load address of section
start: ; run address of section
<code>
finish: ; run address of section end
.label examp_end ; load address of section end
有关在链接器中分配运行时和加载时地址的更多信息,请参阅GUID-F5E666B1-566B-4579-A080-AB90BE70E3C3.html#GUID-F5E666B1-566B-4579-A080-AB90BE70E3C3。