c++ - 从程序集中访问类方法

标签 c++ gcc assembly

我试图用 C++ 编写操作系统的基础代码。为了管理中断,我不得不编写一些 asm 行,这些行使用在 asm 中声明的外部 C++ 代码,带有 external name_of_the_function。我将其中一个函数放在一个类中,但我不知道如何从程序集中访问类方法(external Class::method 不起作用)。我发现这样做的唯一方法是创建一个调用类方法的函数,但是是否可以直接从程序集访问该方法? (假设这些方法是静态的)

最佳答案

  1. 查看您的 C++ 目标文件,找到您要调用的函数的错位符号名称。
  2. 在汇编文件中声明该错位函数名称 externalglobal 或您的汇编程序所需的任何语法。
  3. 像调用 C 函数一样调用它(如果它是实例方法,您可能需要找到一个 this 指针)。

关于c++ - 从程序集中访问类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17201335/

相关文章:

c++ - 如何强制 emscripten/em++/llvm 从 .rodata 加载常量和/或执行更好的 SIMD 优化?

c++ - C++ 中意外的指针行为

c++ - 什么时候应该创建自己的异常类型?

c++ - 编写适合 STL 的 C++ 容器

c - ARM 设备上的 "undefined behaviour"

c - NASM 中执行循环失败

c++ - 如何在netbeans中创建项目依赖(c/c++插件)

c - 我在 SPOJ、语言 C、编译器 gcc 4.3.2 中收到以下代码的运行时错误:代码为 :

c - 如何修复 Build TinyCCompiler(TCC) from Source 中的 Error of crt1.o,crti.o?

c - 位 vector 和浮点 vector 的快速点积