我有一个asm文件(我正在使用gas)和一个c文件。我的asm文件包含一个函数,类似这样的
.global myfunc
.type myfunc, @function
myfunc:
pusha
.
.
.
现在我想从我的c文件中获取标签myfunc的地址,所以我写了
extern uintptr_t _myfunc asm("myfunc");
我的程序链接没有问题,但是当我执行我的程序时,变量_myfunc不包含正确的地址。
修改1
也许知道这段代码是裸机程序的一部分是有用的
修改2
使用函数原型解决了问题
void function() asm("myfunc");
uintptr_t _myfunc = (uintptr_t)&myfunc;