ZHCU876Z July 2001 – October 2023 SM320F28335-EP
您可以通过将 .set 指令与 .def 或 .global 指令结合使用,在汇编语言中定义全局常量,也可以使用链接器赋值语句在链接器命令文件中定义它们。这些常量只能通过使用特殊运算符从 C/C++ 中访问。
对于 C/C++ 或汇编语言中定义的变量,符号表包含变量所包含的值的地址。从 C/C++ 按名称访问程序集变量时,编译器使用符号表中的地址获取值。
但是,对于汇编语言常量,符号表包含常量的实际值。编译器无法分辨符号表中的哪些项是地址,哪些是值。如果按名称访问汇编语言(或链接器)常量,编译器将尝试使用符号表中的值作为地址来获取值。若要防止这种行为,必须使用 & (address of) 运算符来获取值 (_symval)。换而言之,如果 x 是汇编语言常量,那么它在 C/C++ 中的值是 &x。请参阅《TMS320C28x 汇编语言工具用户指南》中的“在 C/C++ 应用程序中使用链接器符号”,了解使用 _symval 的示例。
有关符号和符号表的更多信息,请参阅《TMS320C28x 汇编语言工具用户指南》中的“符号”部分。
您可以使用 cast 和 #define 来简化这些符号在程序中的使用,如以下示例中所示。