繁体   English   中英

从gcc的内联汇编中引用全局变量

[英]referencing global variables from inline assembly in gcc

我有一个问题,即链接器从内联汇编代码生成未定义的参考错误。

int global_var = 0;
void myfunc()
{
    asm(".intel_syntax noprefix\n");
    asm("lea eax, global_var\n");
}

我正在使用-masm = intel进行编译,没有进行任何优化或任何操作,使用GCC 3.4.2。如果有人也遇到这种不便之处,请提供帮助。

基本上,这是名称处理的问题-也就是说,编译器在编译阶段处理(更改)变量和函数的名称。 在这种情况下,“ global_var”更改为“ _global_var”

如果您更改函数的第二行以使其访问“ _global_var”,则编译就可以了。 (经过GCC 4.7.1测试)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM