如何在c中获取asm函数的地址

时间:2015-08-26 16:18:54

标签: c gas

我有一个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;

0 个答案:

没有答案