英文:
How would I go about calling a function inside a c program that I wrote using x64 nasm?
问题
我正在尝试为我的编译器创建一个OpenGL绑定,该编译器将编译的程序编译为汇编语言,并且我需要知道如何在汇编中调用已编译的C代码中的函数。我正在使用GNU/Linux,不关心跨平台。
我已经尝试过搜索,但大多数内容都是关于如何在汇编内部使用printf。
英文:
I'm trying to make an opengl binding for my compiler that compiles a programming to asm, and I need to know how to call a function side of compiled c code in asm. I'm using gnu/linux and I don't care about being cross platform
I've tried googling it but most of it is about how to use printf inside of asm
答案1
得分: 2
如果你使用汇编对象文件链接C代码,你可以使用以下语法:
extern int your_function();
来从对象文件中导入它。
汇编部分:
; test.asm
global your_function
your_function:
mov eax, 500 ; 返回 500
ret
然后使用上述语法来使用该函数。
英文:
If you link or C with the assembly object file you can use the syntax
extern int your_function();
to import it from the object file.
assembly:
; test.asm
global your_function
your_function:
mov eax, 500 ; return 500
ret
then use the above syntax to use that function.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论