在命令行上替换 .SET

Substituting for a .SET on the the command line

我有一些 (Microblaze) 程序集需要构建(通过 GCC 交叉汇编器和链接器)并使用(相同的)常量执行多次,目前已通过

修复
.SET

命令,每次都更改。

有没有办法以这种方式自动设置汇编内常量,从而避免为每次构建重置代码的枯燥任务?

您可以在汇编文件中使用 C 预处理器的强大功能。这可以通过在类 Unix 平台上将文件扩展名从 .s 更改为 .S(大写 S)或在 Windows 上更改为 .sx 来完成。然后在这些文件上使用 gcc 而不是 gas 将使 C 预处理器首先 运行 通过源代码然后 gas 将被自动调用。

在这种情况下,您可以使用所有常规预处理器 #define#ifdef 等。当然,您可以使用 gcc 的 -D 参数从命令行传递这些定义.