我包含的头文件/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 评估,以便它可以实际使用,尽管+
那里有 C 算术运算符和括号 - 什么是正确的方法去做这个?
请注意,这不是内联汇编,而是一个“行外”.S
文件。