【问题标题】:Calling user-defined C functions in inline assembly在内联汇编中调用用户定义的 C 函数
【发布时间】:2012-08-10 09:18:11
【问题描述】:

假设我有这个:

extern "C" {
void foo1();
void foo2();
};
void foo1() 
{
__asm
    {
       ; some stuff

       ; some other 
    }
}

  void foo2() 
  {
    __asm 
        {
              ;some other stuff
              call __foo1

        }
  }

我知道在常规的 .asm 程序中你会被要求说 extrn __fucntionName,但这是内联汇编,可以在内联汇编中像这样调用用户定义的函数吗?如何? 我用的是VS2008。

【问题讨论】:

  • 如果call foo2,您的示例在VS中编译
  • 好的,对。现在简单多了。
  • 你应该指定编译器,但似乎 Roman 做了一个幸运的猜测......
  • 这是特定于编译器的。内联汇编不在标准范围内。
  • @IxChan 他编辑帖子以包含编译器名称

标签: c++ c assembly inline-assembly


【解决方案1】:

可以从汇编程序调用 C 函数。此调用的语法取决于您使用的编译器。通常,函数名称在汇编中的外观会有所不同,反之亦然。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-20
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多