gpt4 book ai didi

c++ - 如何强制将常量 C 表达式求值用作 .S 文件中的常量?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:51:36 25 4
gpt4 key购买 nike

我从 /usr/include/**/asm 中包含的头文件(粗鲁地?)使用简单的 C 表达式来表示相对于基值的偏移量,即:

#define __NR_exit                       (__NR_SYSCALL_BASE+  1)

当然,当我将 #include 放入我的 .S 文件时,预处理器生成的 asm 说:

start.S|17| Error: garbage following instruction -- `ldr r7,=$(0+1)'

所以,尽管听起来很疯狂,但我想我希望 C 预处理器(或汇编程序)对宏进行 constexpr-evaluate,这样它就可以实际使用,尽管有 C 算术 + 运算符和那里的 parent -- 执行此操作的正确方法是什么?

请注意,这不是内联汇编,而是“行外”.S 文件。

最佳答案

糟糕,这只是因为有一个错误的美元符号。如果将其更改为:

ldr r7,=__NR_exit

它似乎编译得很好。我猜 as 在需要常量的位置支持基本算术表达式。

关于c++ - 如何强制将常量 C 表达式求值用作 .S 文件中的常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15455830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com